获取bash脚本以回显正在执行的命令

时间:2012-03-22 13:28:24

标签: bash

我在一个文件夹中放了一堆别名命令。主要是ssh,所以不必输入

ssh [user]@[server]

一天十次,我可以输入

server

并且别名脚本触发。该脚本只是命令

ssh [user]@[server]

这一切都很好。但我想知道在bash中是否有一种方法,而不是静静地触发ssh命令,它会显示正在执行的命令?

2 个答案:

答案 0 :(得分:20)

您可debug the script使用-x,它将回显命令和参数。

bash -x script.sh

您也可以对文件的特定部分执行此操作(从上面链接的第2.3.2节):

set -x          # activate debugging from here
ssh user@example.com ...
set +x          # stop debugging from here

-x的输出可能对你正在寻找的东西来说有点过于冗长,因为它用于调试(而不是记录)。

您可能最好只写出自己的echo语句 - 这样可以让您完全控制输出。

答案 1 :(得分:4)

将“-x”放在脚本的顶部而不是命令行:

$ cat ./server
#!/bin/bash -x
ssh user@server

$ ./server
+ ssh user@server
user@server's password: ^C
$