我有一个 bash 脚本,我想检查激活 conda 的别名是否成功运行,如果不成功,则会引发错误。虽然脚本运行时没有引发错误,但没有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
脚本运行,但没有打印任何 echo 命令。我认为上述函数对于实际内置终端命令有效。但我正在尝试以alias
命令形式运行。
答案1
您的脚本失败,因为在 bash 脚本中无法访问别名或 shell 函数。在编写脚本时,请使用原始命令代替别名,或者在调用脚本中包含函数定义。最后,如果您想在多个脚本中使用同一个函数(参见help source
终端),您可以从另一个文件将函数的代码导入到脚本中。
要了解如何检查命令是否成功,请参阅如何检查命令是否成功?。