Batterymon-клон попытки:
Клон BatteryMon, простой апплет GNOME для контроля состояния батареи. Это добавляет поддержку i18n, distutils базирующаяся инфраструктура сборки, и т.д. Домашняя страница исходного программного обеспечения по http://code.google.com/p/batterymon/
Так как Zsh zsh, существует загадочный путь:
V=${${VERBOSE#0}:+$FOO}
Это устанавливает V
к значению FOO
если VERBOSE
ненулевое число, и к пустой строке если VERBOSE
пусто или 0
.
V=${${${VERBOSE/#/a}:#a1}:+foo}
Это устанавливает V
к значению FOO
если VERBOSE
точная строка 1
, и к пустой строке иначе.
Теперь забудьте это и используйте ясный синтаксис с if
или case
.
Если FOO
является числовым, можно использовать ?:
оператор в арифметическом выражении. Еще случай должен быть числовым также.
((V = VERBOSE ? FOO : 0))
Ну, самое близкое, о котором я могу думать, было бы
[[ $VERBOSE == 1 ]] && V="YES" || V="NO"
Например:
$ VERBOSE=0
$ [[ $VERBOSE == 1 ]] && V="YES" || V="NO"; echo $V
NO
$ VERBOSE=1
$ [[ $VERBOSE == 1 ]] && V="YES" || V="NO"; echo $V
YES
Вышеупомянутые работы для удара и zsh (и большинство других оболочек).
ksh
. Это ksh
синтаксис здесь).
– Stéphane Chazelas
15.02.2014, 22:57
Можно использовать случай / переключатели в Bash для этого также. Просто помните, что они не могут оценить логику:
case "$VERBOSE" in
1) V="YES" ;;
*) V="NO" ;;
esac
Конкуренция за самое загадочное:
$ echo ${${(z):-NO YES}[2-!VERBOSE]}
NO
$ VERBOSE=123
$ echo ${${(z):-NO YES}[2-!VERBOSE]}
YES
Или:
$ echo ${${(z):-NO YES}:!!VERBOSE:1}
YES