0

我希望我在这里使用了正确的术语,但我想编写一个在 unix 中执行的脚本,它将按顺序执行许多命令(即一个接一个)。我可以将我想要的命令放在记事本中,用换行符分隔它们,然后将其保存为 script.sh 然后执行

sh script.sh
4

3 回答 3

0

我只在 bash 中对此进行了测试,但是您可以将每个命令放在自己的行上,不需要 shebang 或任何必要的东西。您必须使用 chmod 授予文件执行权限,然后您可以使用

    ./myscript

(假设“myscript”在当前目录中)。

于 2013-03-01T19:15:22.027 回答
0

您需要确保为您的脚本文件设置了执行位。此外,您可以指定使用哪个应用程序来运行您的脚本。默认情况下,如果您不指定应用程序,它将默认使用正在执行您的脚本的当前 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)。

于 2013-03-01T16:52:50.733 回答
0

你需要在顶部有一个shebang/hashbang

#!/bin/sh

于 2013-03-01T15:54:20.607 回答