Ini adalah contoh sederhana:
PS1='$? > '
Jika menggunakan tanda kutip ganda, maka Anda harus menambahkan garis miring terbalik untuk menghindari $:
PS1="\$? > "
Keluaran:
0 > echo 'ok'
ok
0 > bogus
bogus: command not found
127 >
Cara yang lebih baik lagi adalah dengan hanya mencetak kode keluar ketika bukan nol.
PS1='${?#0}> ' # single quote example
PS1="\${?#0}> " # double quote example (requires extra backslash)
Output sampel:
> echo 'ok'
ok
> bogus
bogus: command not found
127>
Penjelasan: ${var#pattern}adalah perluasan parameter bash yang berarti menghapus pola pencocokan terpendek dari depan $ var. Jadi dalam hal ini, kami menghapus 0dari depan $?, yang akan secara efektif memotong kode keluar 0.
Jika menggunakan tanda kutip ganda, $?akan diganti ketika PS1diatur, bukannya dievaluasi setiap kali. Lakukan echo $PS1untuk mengonfirmasi bahwa Anda tidak memiliki nilai hardcode PS1.