回应shell脚本中运行的命令

时间:2012-05-23 20:59:30

标签: shell echo

是否有可能回显出在shell脚本中运行的命令?

(没有把-X放在sheabang中打开调试模式。这不是调试过程的一部分)

感谢

[编辑:更多详情]

假设我有一个这样的脚本:

#! /bin/sh

clear
cd ~/home/

如何将执行的两个命令(cdclear)打印到控制台?

2 个答案:

答案 0 :(得分:1)

在我的/bin/sh版本(Debian Almquist Shell,破折号)上,除了-x之外没有别的方法可以解决这个问题。回声命令也是-x唯一效果,因此我认为没有理由不使用它。

答案 1 :(得分:0)

echo $0

这将回显命令行中的第一个单词。如果您指定了一个相对路径,例如“./bin/test”,它将显示整个路径,因此您可能需要:

echo $(basename $0)

这只会回应“test”,而不是“./bin/test”。

脚本在错误消息中使用$ 0而不是对名称进行硬编码是很常见的,因为程序可以通过符号链接重命名或调用。