我通过输入终端和在 CentOS 6.5 64 位上执行文件来运行此命令。
let t='.'; echo $t;
不敢相信它会产生如此奇怪的错误:
-bash: let: t=.: syntax error: operand expected (error token is ".")
据我所知,不应解析单引号字符串。事实上,首先,我想做的是:
let $target_path='./files/mp4';
谁能解释这种行为并指导我停止这种奇怪的行为?
除非您想将变量值作为算术表达式进行计算,否则您需要像这样分配变量值:
t='.'
let
用于计算算术表达式和.
或./files/mp4
在该算术表达式中产生语法错误。检查help let
。
这是一个如何let
使用的示例:
a="10*2"
echo "$a" # Prints: 10*2
let a="10*2"
echo "$a" # Prints: 20
如果您遵循下面的讨论,您可能已经注意到即使对于数学表达式let
也不是最佳选择。这是因为您可以ARITHMETIC EXPANSION
在这种情况下使用 POSIX 定义的与let
. 使用ARITHMETIC EXPANSION
上面的示例将如下所示:
a=$((10*2))
echo "$a" # Prints: 20
查看这篇文章以获取更多信息:
在这里使用let
是不对的。你可以这样做:
AMD$ t='.'
AMD$ echo $t
.
AMD$ t='./files/mp4'
AMD$ echo $t
./files/mp4