gpt4 book ai didi

shell - 为什么我的带有嵌套反引号的 shell 命令失败?

转载 作者:行者123 更新时间:2023-12-04 04:38:04 26 4
gpt4 key购买 nike

我有一个包含这个的shell脚本:

var1=`expr $RANDOM % 100`
var2=`expr $RANDOM % 1000 \* 60`
...
...
sleep `expr $var2- `date -t` + $var1`

它给了我这个错误:
sleep:invalid number of operands 
expr error: invalid syntax
+ cannot execute no such file or directory

为什么?错误是什么意思?

最佳答案

因为反引号不嵌套。

如果您的 shell 支持更现代的 $(...)语法,试试这个:

var1=$(expr $RANDOM % 100)
var2=$(expr $RANDOM % 1000 \* 60)
...
...
sleep $(expr $var2 - $(date -t) + $var1)

如果没有,您可以将中间值存储在另一个变量中:
var1=`expr $RANDOM % 100`
var2=`expr $RANDOM % 1000 \* 60`
...
...
date=`date -t`
sleep `expr $var2 - $date + $var1`

(我还添加了一个空格,将 $var2- 更改为 $var2 - 。)

顺便说一句,我无法尝试这个,因为在我的系统上 date命令没有 -t选项。

关于shell - 为什么我的带有嵌套反引号的 shell 命令失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19390805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com