2016-08-27 3 views
4

冗長モードを使用してスクリプトを書いていますが、コマンド出力に接頭辞を設定したいと思います。例えば接頭語をbash冗長モードに設定する方法

、スクリプト:これは出力与える

#!/bin/bash -v 

pwd 
hostname 

pwd 
/home/username 
hostname 
myawesomehost 

しかし、私は(特に$符号付き)出力を希望する:

$ pwd 
/home/username 
$ hostname 
myawesomehost 

このような冗長出力のプレフィックスを設定する方法はありますか?

答えて

3

あなたは(トレースを有効にする)set -xPS4を使用することができます。

#!/bin/bash 

# prompt for trace commands 
PS4='$ ' 

# enable trace 
set -x 

# remaining script 
pwd 
hostname 

、これは出力を生成します。このソリューションで私が持っている唯一の問題は、-x`が印刷されます `ということです

$ pwd 
/home/username 
$ hostname 
myawesomehost 
+0

'echo $(pwd)' 'が' $$ pwd'を出力するように、組み込みコマンドを2回実行します。 '-x'でそれを防ぐ方法はありますか? –

+0

ええと、私はコマンド置換に '$$'を避ける方法に注意しています。私は何かを見つけようとします。 – anubhava

関連する問題