是否可以在 shell 脚本中回显正在运行的命令?
(没有把 -X 在 sheabang 中打开调试模式。这不是调试过程的一部分)
谢谢
[编辑:更多细节]
假设我有一个这样的脚本:
#! /bin/sh
clear
cd ~/home/
如何将执行的两个命令(cd
和clear
)打印到控制台?
在我的版本(Debian Almquist Shell,dash)上,除了获得这种行为/bin/sh
之外别无他法。-x
回显命令也是 的唯一效果-x
,所以我认为没有理由不使用它。
echo $0
这将回显命令行中的第一个单词。如果您指定了一个相对路径,例如“./bin/test”,它将显示整个路径,因此您可能需要:
echo $(basename $0)
那只会回显“test”,而不是“./bin/test”。
脚本在错误消息中使用 $0 而不是硬编码名称是很常见的,因为可以重命名或从符号链接调用程序。