gpt4 book ai didi

bash - 无法将点分配给 Bash shell 中的变量

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

我通过在终端中键入和在 CentOS 6.5 64 位上执行文件来运行此命令。

let t='.'; echo $t;

无法相信它会产生如此奇怪的错误:

-bash: let: t=.: syntax error: operand expected (error token is ".")

据我所知,不应解析单引号字符串。事实上,首先,我想做的是:

let $target_path='./files/mp4';

任何人都可以解释这种行为并指导我停止这种奇怪的行为吗?

最佳答案

除非你想将变量值作为算术表达式求值,否则你需要分配variable像这样的值:

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

查看这篇文章以获取更多信息:

关于bash - 无法将点分配给 Bash shell 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29512577/

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