たとえば、コマンドラインは次のようになります。
test.sh arg1 | grep "xyz"
bashスクリプトtest.shから次のgrepを含む完全なコマンドラインを取得できますか?
ベストアンサー1
いいえ
bash(またはシェル)は2つの異なるコマンドを分岐します。
test.sh arg1
grep "xyz"
test.sh
grepに従う方法がわかりません。
ただし、テストではパイプライン「内部」にあることがわかります。/proc/self/fd/1
テストファイル
#!/bin/bash
file /proc/self/fd/1
動作モードは次のとおりです。
> ./test.sh
/proc/self/fd/1: symbolic link to /dev/pts/0
> ./test.sh | cat
/proc/self/fd/1: broken symbolic link to pipe:[25544239]
(編集者)参照Muluのコメントあなたがパイプラインにいるかどうかを知っていることについて。
あなたがそのような問題に直面しているかどうかを知る必要はありません。出力がTTYであることを確認してください。
[ -t 1 ]
https://unix.stackexchange.com/a/401938/70524