Bash 在同一行上继续输出
希望在任务完成后,在最后一行的末尾打印[OK]以实现奇特的效果 得到这个:Bash 在同一行上继续输出,bash,Bash,希望在任务完成后,在最后一行的末尾打印[OK]以实现奇特的效果 得到这个: echo "$0: Starting backup process in '$backupdir'... " sleep 3 echo '[OK]' 我在第一次回音结束时尝试了不同的方法,在第二次回音开始时尝试了不同的方法,比如\r,\c,\,谷歌搜索。。。不好 我希望它输出以下内容: /backup.sh:在“/backup”中启动备份过程… 。。。3秒钟后,添加[OK]: /backup.sh:正在“/backu
echo "$0: Starting backup process in '$backupdir'... "
sleep 3
echo '[OK]'
我在第一次回音结束时尝试了不同的方法,在第二次回音开始时尝试了不同的方法,比如\r
,\c
,\
,谷歌搜索。。。不好
我希望它输出以下内容:
/backup.sh:在“/backup”中启动备份过程…
。。。3秒钟后,添加[OK]
:
/backup.sh:正在“/backup”中启动备份过程。。。[确定]
谢谢,使用
-n
选项跳过末尾的换行符打印。更多参考资料请访问
所以你可以这样做:
echo -n "$0: Starting backup process in '$backupdir'... "
使用更便携的printf
printf
:
printf“%s”$0:正在“$backupdir”中启动备份进程
睡眠3
printf'[确定]\n'
echo-n hello
echo的一些实现使用-n
标志来抑制换行符;其他人在字符串末尾使用\c
。如果您在脚本中使用其中一个,而echo期望使用另一个,那么您的输出前面将显示“-n”,或者最后显示“\c”。但是printf“%s”$0:…“
将始终按预期工作。@Gordon Davisson@ghostdog74非常同意,甚至POSIX标准也说“鼓励新应用程序使用printf而不是echo。”+1请不要使用echo
,坚持使用printf
,阅读更多信息了解原因。