Поскольку expr
- это просто отдельная команда, она может использоваться с zsh
как и любая другая команда, хотя многие операторы, возможно, должны быть экранированы или заключены в кавычки:
% expr 7 * 2
expr: syntax error
% expr 7 '*' 2
14
% expr 8 < 9
zsh: no such file or directory:
% expr 8 \< 9
1
Если вы хотите использовать только встроенные команды zsh, нет единой альтернативы перехватывать все.
Большинство арифметических выражений могут быть обработаны с помощью echo $(( exp ))
% echo $(( 7 * 2 ))
14
% echo $(( 8 < 9 ))
1
Некоторые строковые операции можно заменить раскрытием параметров. (Обратите внимание, что expr
считает позиции от 1, а zsh
начинается с 0)
% str='hello world'
% expr substr $str 4 5
lo wo
% echo ${str:3:5}
lo wo
% expr length $str
11
% echo $#str
11