যেহেতু প্রস্থান স্থিতি পরিচিত হওয়ার আগে আউটপুট উত্পন্ন হয়, তাই আপনাকে এটি অন্য কোথাও সংরক্ষণ করতে হবে।
একটি সম্ভাবনা এটি শেল ভেরিয়েবলে সংরক্ষণ করা হয়:
output=$(php /path/to/script.php)
if [ $? -ne 0 ]; then
printf "%s\n" "$output"
fi
এটি স্ক্রিপ্টের আউটপুট পুরোপুরি সংরক্ষণ করে না (এটি ফাঁকা রেখাগুলি সরিয়ে ফেলবে), তবে এই ব্যবহারের ক্ষেত্রে এটি ঠিক। আপনি যদি ফাঁকা ফাঁকা রেখাগুলি সংরক্ষণ করতে চান:
output=$(php /path/to/script.php; ret=$?; echo a; exit $ret)
if [ $? -ne 0 ]; then
printf "%s" "${output%a}"
fi
যদি সম্ভাব্যভাবে প্রচুর আউটপুট থাকে তবে আপনি এটি পরিবর্তে একটি অস্থায়ী ফাইলে সংরক্ষণ করতে পছন্দ করতে পারেন:
output_file=$(mktemp /var/tmp/script.XXXXXXXXXX.out)
php /path/to/script.php >>"$output_file"
ret=$?
if [ $ret -ne 0 ]; then
echo "script.php failed (status $ret), see the output in $output_file"
fi