bash:命令退出后如何在上一行打印 OK 状态?

age*_*154 2 bash

考虑以下脚本来停止和启动 tomcat:

#!/bin/bash

# Shutdown tomcat and delete all the logs
echo --- Shutting down Tomcat...
sh /opt/tomcat/bin/shutdown.sh -force &> /dev/null
rm -f /opt/tomcat/logs/* &> /dev/null
echo OK

# Startup tomcat
sh /opt/tomcat/bin/startup.sh &> /dev/null

echo --- Starting up Tomcat...
until [ "`curl --silent --show-error --connect-timeout 1 -I http://localhost:8080 | grep 'Coyote'`" != "" ];
do
  sleep 10
done

echo OK
Run Code Online (Sandbox Code Playgroud)

我希望能够做的是在说明正在发生的情况的消息所在的同一行上显示“确定”。我怎样才能实现这个目标?

Jon*_*ler 6

echo -n "--- Shutting down Tomcat..."
...
echo OK
Run Code Online (Sandbox Code Playgroud)

抑制-n回显末尾的换行符。请注意,如果 Tomcat 服务器发出任何信息,它将在三点之后启动。


正如评论中指出的,您应该考虑:

printf "--- Shutting down Tomcat..."
...
printf "OK\n"
Run Code Online (Sandbox Code Playgroud)

(尽管您可以将第二个保留为echo OK,但最好保持一致。)