bashの文字列置換を使って大文字を小文字に変更しようとしていますが、誤った置換エラーが出ます。
> a=HEY
> echo $a
HEY
> echo ${a,,}
-bash: ${a,,}: bad substitution
# desired output is hey
私はこれに似た質問を見ましたが、ほとんどの場合、以前のバージョンのbashを使用することになりました。私はGNU bash 4を使用していて、同じ問題を抱えています。
> bash --version
GNU bash, version 4.3.33(1)-release (x86_64-apple-darwin14.1.0)
これはおそらくMacのものでしょうか?どんな助けもありがとう。
回答:
回答№1は2最初のbashのように見える PATH
4.3.33になりますが、あなたがインタラクティブセッションで実行しているbashはおそらく古いバージョンです。 echo "$BASH_VERSION"
チェックする。
上記が正しい場合は、
type bash
おそらく次のような新しいバージョンのパスを見ることができます /opt/local/bin/bash
。私はそれを仮定します。ログインシェルにしたい場合は、まずそれを/ etc / shellsに追加してください
sudo -e /etc/shells
その後、ユーザは、ログインシェルとしてそのユーザを選択することができます。 chsh
(chアンジュ shell)コマンド
chsh -s /opt/local/bin/bash
回答№2の場合は0
私のコメントのコメントに基づいて、これは答えです:
echo $a | tr "[:upper:]" "[:lower:]"