コマンドラインエイリアスと .bash_profile エイリアス

コマンドラインエイリアスと .bash_profile エイリアス

コマンドラインからこのエイリアスを作成すると、すべて正常に動作します。alias ejecta='for I in 1 2 3; do /usr/sbin/diskutil unmountDisk disk$I;done'

.bash_profile に同じエイリアスが作成されると、OS は "$I" を削除します。

これは初心者のような質問ですが、恥ずかしながら解決策が見つかりません。スクリプトを作成してエイリアスで参照する必要がありますか?

答え1

試みていることはうまくいくはずです。 は$I、おそらくエイリアスが定義されているときに評価されています。つまり、どこかに引用符が欠けている可能性があります。

ただし、.bash_profile の関連部分を含めないと、判断は困難です。

答え2

質問では、エイリアスを一重引用符で囲んでいますが、これは変数の評価を遅らせるための正しい方法です。私の推測では、変数を.bash_profileすぐに評価できるように二重引用符を使用していると思います。その時点では変数が設定されていない可能性が高いため、null 文字列として評価されます。

関連情報