Put*_*nik 34 linux bash command-line echo
我怎样才能得到在 bash 脚本中运行的所有命令的标准输出?
即输出必须包含命令输出和命令本身。
我发现
#!/bin/bash -x
Run Code Online (Sandbox Code Playgroud)
但这并不完全相同,因为不是
mysql -v dbname < dump.sql | grep "CREATE TABLE"
Run Code Online (Sandbox Code Playgroud)
表明
+ mysql -v dbname
+ grep 'CREATE TABLE'
Run Code Online (Sandbox Code Playgroud)
Dan*_*eck 38
使用bash -v.
这是脚本:
#!/bin/bash -v
echo "Hello, World" | sed 's|Hello|Goodbye|'
echo "Done."
Run Code Online (Sandbox Code Playgroud)
这是输出:
#!/bin/bash -v
echo "Hello, World" | sed 's|Hello|Goodbye|'
Goodbye, World
echo "Done."
Done.
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有像PS4打印扩展命令那样的特殊标记。您可以将两者结合起来快速识别命令:
#!/bin/bash -vx
echo "Hello, World" | sed 's|Hello|Goodbye|'
+ echo 'Hello, World'
+ sed 's|Hello|Goodbye|'
Goodbye, World
echo "Done."
+ echo Done.
Done.
Run Code Online (Sandbox Code Playgroud)
小智 15
set -x 是另一种方式。
$ cat a.sh
#!/bin/bash
set -x
echo "Hello, World" | sed 's|Hello|Goodbye|'
echo "Done."
Run Code Online (Sandbox Code Playgroud)
输出将是:
sh a.sh
+ echo 'Hello, World'
+ sed 's|Hello|Goodbye|'
Goodbye, World
+ echo Done.
Done.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41838 次 |
| 最近记录: |