a) Output dari command1 dapat ditangkap dengan
output=$(diff "helloworld$x.out" "output/helloworld$x.out")
atau dengan backtick, tetapi itu tidak disarankan, karena Anda tidak dapat membuat sarang, dan mereka mungkin sulit dibedakan dari apostrof, tergantung pada font:
output=`cmd1`
b) Alih-alih menulis ke file, dan kemudian membaca file itu, (atau mengambil output, dan kemudian menggemakannya) Anda akan menggunakan pipa langsung:
cmd1 > file
cat file | cmd2
output=$(cmd1)
echo "${output}" | cmd2
=>
cmd1 | cmd2
tetapi dalam contoh Anda, Anda tidak tertarik dengan output, tetapi hasil dari program - apakah berhasil?
diff "helloworld$x.out" "output/helloworld$x.out" && echo "success" || echo "failure"
Untuk membaca tentang penggunaan && dan || cari "shortcut AND dan shortcut OR".
Untuk menjaga output tetap bersih, Anda dapat mengarahkan output 'diff' ke tempat:
diff "helloworld$x.out" "output/helloworld$x.out" >/dev/null && echo "success" || echo "failure"
Untuk meraih sukses dan mengevaluasinya nanti, Anda menyimpan hasil dari perintah terakhir dalam variabel dengan $ ?:
diff "helloworld$x.out" "output/helloworld$x.out" >/dev/null
result=$?
# do something else
case $result in
0) echo success ;;
*) echo failure ;;
esac
... > /dev/null
terjadi di konteks ini Output dari diff akan pergi / dev / null tetapi bukankah itu tidak ada?