ZSH 中与 'expr' 对应的是什么?

ZSH 中与 'expr' 对应的是什么?

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

相关内容