したがって、コマンド:
dmesg | grep 'Attached SCSI disk' | awk '{ print $5}'
シェルから直接実行すると、正常に動作し、次のように出力されます。
[sdb]
[sdc]
[sda]
しかし、私がそれを起動するとき:
sh -c "dmesg | grep 'Attached SCSI disk' | awk '{ print $5}'"
# or
bash -c "dmesg | grep 'Attached SCSI disk' | awk '{ print $5}'"
私は得る:
[ 2.460353] sd 1:0:0:0: [sdb] Attached SCSI disk
[ 2.461348] sd 2:0:0:0: [sdc] Attached SCSI disk
[ 2.464181] sd 0:0:0:0: [sda] Attached SCSI disk
これは、最後のパイプが実行されていないことを明確に示しています。
私は何が間違っているのですか?