Condaをアクティブにするエイリアスが正常に実行されるかどうかを確認し、エラーが発生しないbashスクリプトがあります。エラーは発生せずにスクリプトは実行されますが、echo
は出力されません。どうすれば修正できますか?
ぼくの ~/.bashrc
ファイルには
### shortcut to activate installed miniconda2
activate_conda() {
export PATH=$HOME/miniconda2/bin:/bin:/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games;
}
alias activate_conda="activate_conda"
そして、私が次のbashスクリプトを実行すると
#!/bin/bash
#Check if activate_conda command runs successfully
activate_conda
if [ $? -eq 0 ]; then
echo "activate_conda was successful"
exit 0
else
echo "activate_conda was not successful.
Please check your .bashrc file"
exit 1
fi
#another function to check the same alias
if activate_conda ; then
echo "Command succeeded"
else
echo "Command failed"
fi
スクリプトは実行されますが、エコーコマンドは出力されません。上記の関数は、ターミナルコマンドの実際のビルドに有効だと思います。しかし、私はalias
をコマンドとして実行しようとしています。
エイリアスもシェル関数もbashスクリプト内からアクセスできないため、スクリプトは失敗します。スクリプトでは、エイリアスの代わりに元のコマンドを使用するか、呼び出しスクリプトに関数定義を含めます。最終的に、複数のスクリプトで同じ関数を使用する場合は、関数のコードを別のファイルからスクリプトに取り込むことができます(help source
ターミナルで)。
コマンドが成功したかどうかを確認する方法については、 コマンドが成功したかどうかを確認する方法 を参照してください。