如何确保第一个命令完成然后只在 shell 脚本中执行第二个命令
how to make sure first command finishes and then only execute second command in shell script
如何确保第一个命令完成,然后仅在 shell 脚本中执行第二个命令
#!/bin/sh
echo "Stopping application"
#command to stop application
echo "Starting application"
#command to start application
在上面的代码中,我想确保停止应用程序的命令正确完成,然后只启动应用程序。
如何处理。
请注意,在我的例子中,如果应用程序已经停止,则停止应用程序的命令需要一些随机时间才能完成,即 20 秒、30 秒。
所以增加睡眠不是正确的方法。
脚本背后的主要动作是重新启动应用程序。
考虑到如果应用程序已经停止,它将无法正常工作。
如果应用程序是 运行 那么脚本就可以完美运行。
有'exit codes',试试这个:
ls
...
echo $?
0
比:
ls non_existing_file
ls: cannot access 'non_existing_file': No such file or directory
echo $?
2
此命令echo $?
打印上一个命令的退出代码,如果它是 0 则表示正常,所有非 0 代码表示某种错误,这是不正常的。
您可以使用命令 return 代码和条件来执行此操作。
#!/bin/sh
echo "Stopping application"
#command to stop application
rc=$?
# if the stop command was executed successfuly
if [ $rc == 0 ]; then
echo "Starting application"
#command to start application
else
echo "ERROR - return code: $rc"
fi
如何确保第一个命令完成,然后仅在 shell 脚本中执行第二个命令
#!/bin/sh
echo "Stopping application"
#command to stop application
echo "Starting application"
#command to start application
在上面的代码中,我想确保停止应用程序的命令正确完成,然后只启动应用程序。
如何处理。
请注意,在我的例子中,如果应用程序已经停止,则停止应用程序的命令需要一些随机时间才能完成,即 20 秒、30 秒。 所以增加睡眠不是正确的方法。
脚本背后的主要动作是重新启动应用程序。 考虑到如果应用程序已经停止,它将无法正常工作。
如果应用程序是 运行 那么脚本就可以完美运行。
有'exit codes',试试这个:
ls
...
echo $?
0
比:
ls non_existing_file
ls: cannot access 'non_existing_file': No such file or directory
echo $?
2
此命令echo $?
打印上一个命令的退出代码,如果它是 0 则表示正常,所有非 0 代码表示某种错误,这是不正常的。
您可以使用命令 return 代码和条件来执行此操作。
#!/bin/sh
echo "Stopping application"
#command to stop application
rc=$?
# if the stop command was executed successfuly
if [ $rc == 0 ]; then
echo "Starting application"
#command to start application
else
echo "ERROR - return code: $rc"
fi