运行 Bash 脚本时的链接命令

运行 Bash 脚本时的链接命令

我只是好奇我是否可以在 bash 脚本执行完成后链接命令。

$ deploy-stg.sh <path to pem file>; notify-send "deployed"

以上示例仅用于演示。我想通过在所有命令中添加通知来节省一些时间。这样团队消息或进一步工作就可以继续,而不会浪费任何时间盯着终端。出于某些原因,我无法将这些命令包含在脚本本身中。

答案1

您展示的示例可以运行。测试时有问题吗?

使用链式命令的一个问题;是,所有命令都会被执行。这可能是你的脚本的一个问题,正如steeldriver提到的

;在这种情况下,您可能更喜欢使用,而不是使用&&,以便仅在脚本成功运行时显示通知。然后,如果脚本遇到错误,例如文件丢失、权限问题或不存在或语法错误的命令,则在其后链接的命令&&将不会运行。

但是,根据脚本内容,您可能需要调整它以包含退出状态(在 Bash 中,零表示成功,其他任何值都表示错误),以防脚本运行时没有任何错误,但不知何故仍无法完成预期的工作。您可以通过exit 1 exit 2在脚本中写入等来包含这些内容,通常作为条件的一部分。例如,下面是一段代码,用于检查运行脚本的用户是否是 root,如果不是,则导致脚本退出并出现错误:

if [ "$EUID" -ne 0 ]
    then
        echo "Please run as root"
        exit 1
    else
        echo "You are root, continuing..."
fi

相关内容