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

scp*_*ntm 19 bash

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

ssh [user]@[server]
Run Code Online (Sandbox Code Playgroud)

一天十次,我可以打字

server
Run Code Online (Sandbox Code Playgroud)

并且别名脚本触发.脚本就是命令

ssh [user]@[server]
Run Code Online (Sandbox Code Playgroud)

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

Rob*_*ska 23

您可以调试脚本-x,这将呼应的命令和参数.

bash -x script.sh
Run Code Online (Sandbox Code Playgroud)

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

set -x          # activate debugging from here
ssh user@example.com ...
set +x          # stop debugging from here
Run Code Online (Sandbox Code Playgroud)

-x但是,对于您正在寻找的内容,输出可能有点过于冗长,因为它用于调试(而不是日志记录).

你可能最好只写出自己的echo陈述 - 这会让你完全控制输出.


小智 6

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

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

$ ./server
+ ssh user@server
user@server's password: ^C
$
Run Code Online (Sandbox Code Playgroud)