如何检查别名在 shell 脚本中是否成功运行?

如何检查别名在 shell 脚本中是否成功运行?

我有一个 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终端),您可以从另一个文件将函数的代码导入到脚本中。

要了解如何检查命令是否成功,请参阅如何检查命令是否成功?

相关内容