bashスクリプトのデバッグ出力+と++

bashスクリプトのデバッグ出力+と++

debug()出力の先頭の合計はどういう意味ですか+++bashset -x

原文はこうです

++ delete 
+ exitstatus=0
+ '[' 0 = 0 ']'
++ delete
+ whiptail --title 'Command output 1311' --separate-output --scrolltext --msgbox '/usr/bin/raspi-config-DEBUG.sh: line 1311: delete: command not found' 17 80 10
+ echo '1317  done printing choice to stdout'

ベストアンサー1

これがプロンプト+です(通常のプロンプトや一部のバリアントと同様に、デフォルトの対話型プロンプトです)。トレースが有効になると、各コマンドが実行される前に出力されます。PS4PS1$set -x

このマニュアルにはbash次のように記載されています。

PS4

このパラメーターの値はこのように拡張され、PS1実行トレース中に各コマンドbashが表示される前に印刷されます。の最初の文字は、PS4複数レベルの間接参照を表すために必要なだけコピーされます。デフォルト値はです+

あなたが見ることができる倍数は、+サブシェルで実行されるコマンドによって引き起こされます。

3つのレベルのサブシェルを示す例:

$ cat script.sh
#!/bin/bash

echo "$( echo "$( echo hi )" )"
$ bash -x script.sh
+++ echo hi
++ echo hi
+ echo hi
hi

おすすめ記事