Apakah ada perintah Unix standar yang melakukan sesuatu yang mirip dengan contoh saya di bawah ini
$ <cmd here> 56
$ echo Return code was $?
Return code was 56
$
<cmd here>
harus menjadi sesuatu yang bisa di-fork dan meninggalkan 56 sebagai kode keluar saat proses keluar. The exit
dan return
shell builtin tidak cocok untuk apa yang saya cari karena mereka mempengaruhi shell memohon sendiri dengan keluar dari itu. <some cmd>
harus menjadi sesuatu yang dapat saya jalankan dalam konteks non-shell - misalnya, meminta dari skrip Python dengan subprocess
.
Misalnya, /usr/bin/false
selalu keluar segera dengan kode kembali 1, tetapi saya ingin mengontrol apa itu kode kembali. Saya dapat mencapai hasil yang sama dengan menulis skrip pembungkus saya sendiri
$ cat my-wrapper-script.sh # i.e., <some cmd> = ./my-wrapper-script.sh
#!/usr/bin/bash
exit $1
$ ./my-wrapper-script.sh 56
$ echo $?
56
tapi saya berharap kebetulan ada perintah Unix standar yang dapat melakukan ini untuk saya.
(exit 56)
?
true
dan false
exit
adalah satu-satunya yang bisa saya pikirkan, tetapi cenderung mengakhiri cangkang Anda.bash -c 'exit 56'
ataubash -c "exit $1"
mungkin bekerja untuk Anda.