【发布时间】:2018-07-05 13:39:49
【问题描述】:
如何编写一个 bash 脚本/函数,它将接受一个带空格的命令行参数并将其解释为好像它有引号一样。
即:echo this is some text 好像echo "this is some text"
我想做的是创建一个简单的 CLI 计算器脚本/函数。 这是我所拥有的:
calc() {
echo $(($@))
}
在 CLI 上,所有这些工作:
“#+-/*”、#+-/*、#+-/#
即:
calc 10+2
12
但是这个会产生错误:
calc 10 * 2
-bash: 10 calc.sh 2: syntax error: invalid arithmetic operator (error token is ".sh 2")
有什么想法吗?在计算中包含引号并不是什么大问题,但如果可能的话,不包含它们会更快/更方便。有没有办法在 calc 之后从第一个字符到最后一个字符,然后通过脚本中的引号传递它?
【问题讨论】: