我知道,調試腳本,我可以在第一行發出命令調試的bash /的ksh腳本和標
set -x
。問題是,當腳本啓動一些其他腳本時,它們不會繼承此設置。所以我的問題是,是否有可能爲全局shell和所有子shell或某些腳本及其啓動的所有腳本設置此標誌?
我知道,調試腳本,我可以在第一行發出命令調試的bash /的ksh腳本和標
set -x
。問題是,當腳本啓動一些其他腳本時,它們不會繼承此設置。所以我的問題是,是否有可能爲全局shell和所有子shell或某些腳本及其啓動的所有腳本設置此標誌?
把set -x
shell腳本
$ cat shell1.sh
echo "Shell1"
$ cat shell2.sh
#!/bin/bash
set -x
./shell1.sh
echo "shell2.sh"
$ ./shell2.sh
+ ./shell1.sh
Shell1
+ echo shell2.sh
shell2.sh
正如您所見,shell2.sh中的每條命令都會輸出到屏幕,但shell1.sh中的命令不會輸出到屏幕,因爲-x標誌不會被shell1.sh腳本繼承。我想實現的是shell1.sh也向屏幕輸出命令。我想在不修改shell1.sh腳本的情況下實現這一點。請記住,practive中的shell1.sh也會調用其他一些腳本,我希望它們也繼承-x標誌。 – Trismegistos
啊,這很棘手,但不修改shell1.sh。讓我們等待其他人發佈他們的答案 – Sathy
裏面有一個理由,一個子shell? – devnull
+1你肯定沒有辦法阻止內部腳本顯式地關閉該選項,但除了用'bash - $ - '調用每個腳本之外,我沒有看到另一種方式。好奇地等待答案。 – kojiro