С bash
:
A=10
B=20
C=0
D=1
for var in A B C D; do
if [ ${!var} -eq 0 ]; then
echo "$var value is 0"
else
echo "Ok"
fi
done
Используйте -eq
для сравнения целочисленных значений (или используйте (($ {! Var} == 0))
или ((! $ {! Var}))
, что то же самое), и используйте $ {! Var}
, чтобы получить значение переменной, имя которой хранится в переменной var
.
Или немного лучше, но по сути то же самое (все еще в bash
):
for var in A B C D E; do
case ${!var} in
0) printf '%s value is 0\n' "$var" ;;
*) echo 'Ok' ;;
esac
done
Это обрабатывает значения как строки, а не как целые числа.
Возможность (я думаю, должны быть лучшие):
echo `echo "Hello world" | wc -c` ",Hello world" | sed 's/ ,/,/g'
tee
и paste
решение:
echo "Hello world" | tee >(wc -c) | tac | paste -s -d, -
12,Hello world