我希望我在这里使用了正确的术语,但我想编写一个在 unix 中执行的脚本,它将按顺序执行许多命令(即一个接一个)。我可以将我想要的命令放在记事本中,用换行符分隔它们,然后将其保存为 script.sh 然后执行
sh script.sh
我只在 bash 中对此进行了测试,但是您可以将每个命令放在自己的行上,不需要 shebang 或任何必要的东西。您必须使用 chmod 授予文件执行权限,然后您可以使用
./myscript
(假设“myscript”在当前目录中)。
您需要确保为您的脚本文件设置了执行位。此外,您可以指定使用哪个应用程序来运行您的脚本。默认情况下,如果您不指定应用程序,它将默认使用正在执行您的脚本的当前 shell。我通常把应用程序具体如下...
#!/bin/bash
这将指定bash
应该用于处理您的脚本。如果您涉及任何特殊的脚本,您将需要具体,因为 , , 等之间sh
存在bash
差异ksh
。
此外,由于您提到要按顺序运行多个命令,因此您可能需要使用一些条件。
一个简单的条件是在您的脚本中使用&&
或使用。||
这将允许您指定命令执行成功与否时会发生什么。例如...
#!/bin/bash
command1 || exit
command2 || exit
command3
这将尝试执行 command1或如果不成功则退出(返回代码高于 0)。否则它将继续执行以下行。
另一个使用表示“和&&
”的语法的例子......
command1 && command2 && command3
最后,您可能需要专门检查返回代码并以错误消息进行响应。
#!/bin/bash
command1
if [ $? -gt 0 ] ; then
echo "command1 failed with error code $?"
exit
fi
command2 ....
最后一个示例是更高级的 shell 脚本,但您可能需要进一步研究。如果您使用任何条件脚本,请始终记住为正确的 shell 添加您的 shebang (#!/bin/bash)。
你需要在顶部有一个shebang/hashbang
#!/bin/sh