Làm cách nào để lấy mã trả về chính xác từ ứng dụng dòng lệnh unix sau khi tôi đã chuyển nó qua một lệnh khác đã thành công?Đầu ra của lệnh đường ống, nhưng giữ mã lỗi
Cụ thể, đây là tình hình:
$ tar -cEvhf - -I ${sh_tar_inputlist} | gzip -5 -c > ${sh_tar_file} -- when only the tar command fails $?=0
$ echo $?
0
Và, những gì tôi muốn thấy là:
$ tar -cEvhf - -I ${sh_tar_inputlist} 2>${sh_tar_error_file} | gzip -5 -c > ${sh_tar_file}
$ echo $?
1
Có ai biết làm thế nào để thực hiện điều này?
'$?' Giữ mã lỗi. Bạn có thể lưu nó trong một biến. –
tôi cần lưu mã trả về của lệnh trung gian, không phải lệnh cuối cùng. – SamiBOB