无法在Bash shell中为dot赋值

时间:2015-04-08 10:48:46

标签: bash shell centos6.5

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

let t='.'; echo $t;

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

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

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

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

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

2 个答案:

答案 0 :(得分:10)

除非您想将变量值计算为算术表达式,否则需要像这样分配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

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

答案 1 :(得分:0)

在这里使用let是不对的。 你可以这样做:

AMD$ t='.'
AMD$ echo $t
.

AMD$ t='./files/mp4'
AMD$ echo $t
./files/mp4