Альтернативою, яка може підходити в деяких ситуаціях, є присвоєння результату команди змінній:
$ DUMMY=$( grep root /etc/passwd 2>&1 )
$ echo $?
0
$ DUMMY=$( grep r00t /etc/passwd 2>&1 )
$ echo $?
1
Оскільки Bash та інші інтерпретатори командного рядка POSIX не розглядають призначення змінних як команду, код повернення цієї команди дотримується.
Примітка: присвоєння ключовому слову typeset
або declare
ключовому слову вважається командою, тому оцінений код повернення на випадок є самим призначенням, а не командою, що виконується в підколонці:
$ declare DUMMY=$( grep r00t /etc/passwd 2>&1 )
$ echo $?
0