得到bash脚本来回应正在执行的命令
问题描述:
我把一堆别名命令放在一个文件夹中。主要SSH的,所以而不必键入一天得到bash脚本来回应正在执行的命令
ssh [user]@[server]
十次,我只需键入
server
和别名脚本火灾。脚本只是命令
ssh [user]@[server]
这一切都工作正常。但我想知道是否在bash中有一种方法,而不是悄悄地发射ssh命令,它会显示正在执行的命令?
答
您可以debug the script与-x
,这将回显命令和参数。
bash -x script.sh
可以为文件的特定部分(从上面链接第2.3.2节)做到这一点,太:
set -x # activate debugging from here
ssh [email protected] ...
set +x # stop debugging from here
从-x
的输出可能是你有点太冗长”不过,因为它是用于调试(而不是记录)的。
你可能最好只写出自己的echo
声明 - 这会让你完全控制输出。
答
PUT“-x”在你的脚本的顶部,而不是在命令行上:
$ cat ./server
#!/bin/bash -x
ssh [email protected]
$ ./server
+ ssh [email protected]
[email protected]'s password: ^C
$
这有点儿违背了别名的目的。除非有人有另一个想法,否则我只会在实际命令之上添加一个回显,看看它是如何工作的。 – scphantm 2012-03-22 13:33:30
@scphantm - 是的,它实际上并不意味着要进行日志记录,更重要的是它用于调试。但它能完成这项工作。有可能有更好的解决方案。添加自己的'echo'语句可能是最好的;那么你就可以完全控制日志记录。我已经将其纳入我的答案。 – 2012-03-22 13:34:34
现在我喜欢那样。非常酷...我肯定会玩一点,并确保它的工作。谢谢 – scphantm 2012-03-22 13:43:40