expr 实用程序评估表达式并将结果写入标准输出。
ZSH 评估表达式并打印结果的规范方法是什么?
解决方案:
我相信答案是使用 eval:
例如:
% eval 'export FOO=baz'
% echo $FOO
baz
我还发现了类似的超级用户问题“zsh 运行存储在变量中的命令?”
答案1
因为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