環境
- Xubuntu 18.04 LTS
- bash 4.4.20
やりたいこと
シェルスクリプトの標準出力/標準エラー出力をファイルに出力したいです。
hoge.sh
#!/bin/bash -ex
echo "hello"
起きたこと
shellscriptを直接実行したときと、bashコマンドで実行したときで、出力されたファイルの中身が異なっていました。
具体的には、bash -x
で表示される実行コマンドが、ファイルに出力されていませんでした。
実行したコマンド
$ ./hoge.sh > out1.txt 2>&1
$ /bin/bash ./hoge.sh > out2.txt 2>&1
ファイルの中身
out1.txt
+ echo hello
hello
out2.txt
hello
質問
bash hoge.sh
だと、bash -x
の結果がファイルに出力されないのは、なぜでしょうか?
また、どうすればbash hoge.sh
でも出力できるようになるでしょうか?
※bash
コマンドを使う必要性はありませんが、興味として知っておきたいです。
シェルスクリプトで実行した結果を変数の仲間で含めてすべて標準出力してくれます。