В моем тестировании пока это работало:
command && echo "$?" || echo "$?"
Просто говорит ему, чтобы он повторил код выхода, если он успешен или если он терпит неудачу.
Как указал Сато ниже, это по существу то же самое, что и:
command; echo "$?"
Одна вещь, которая может сделать команду and/or полезной, это что-то вроде:
command && echo "Success! Exit Code: $?" || echo "Failure! Exit Code: $?"
Если вам нужно, чтобы ваш сценарий работал с кодом выхода, что беспокоит Оливье, это не проблема. Ваш скрипт может выглядеть примерно так:
command
case "$?" in;
0) echo "Command exited with: 0"
<command if good>
;;
1) echo "Command exited with: 1"
<command if bad>
;;
255) echo "Command exited with: 255" # for ssh maybe?
<command if 255>
;;
*) echo "Command exited with: >2"
<command for other exit code>
;;
esac
Я запускаю вывод xrandr
через awk
для чего-то подобного. Например. это даст вам высоту самого высокого подключенного экрана:
TALLEST_HEIGHT=`xrandr --prop --nograb | awk -F " |x+" 'BEGIN { max = 0 } / connected/ { if($5 > max){ max = $5 }}; END { print max }'`
Затем вы можете использовать это при вызовеdzen
:
dzen -h $TALLEST_HEIGHT (...)
Аналогичная логика может применяться во многих случаях, если вы поменяете $5
на $4
, вы получите ширину, и ее также можно легко адаптировать для получения самого маленького экрана вместо самого широкого. Вы также можете взглянуть на поля $6
и $7
, которые сообщают вам смещение каждого дисплея, и использовать их, чтобы добраться до самого низа (или самого левого )изображения.