Bash 脚本:意外标记附近的语法错误?
Posted
技术标签:
【中文标题】Bash 脚本:意外标记附近的语法错误?【英文标题】:Bash script: syntax error near unexpected token? 【发布时间】:2015-03-31 02:06:20 【问题描述】:function nvis()
while true; do
nvidia-smi
sleep $1
done
我正在尝试像这样使用它:
nvis 2
我收到如下错误:
bash: syntax error near unexpected token `2'
对不起,如果这很明显;我有点难过。
【问题讨论】:
这类似于:***.com/questions/1289026/…,但他们不接受命令行参数,这似乎是我的问题 请写一个概括具体问题的标题。例如:为什么那个 bash 函数不需要参数?或类似的东西。 这是怎么回事?由于某种原因它不需要参数?我在其他 bash 函数中使用了类似的语法,没有问题.... $1 是第一个命令行参数,不是吗?我更改了标题,但我不确定最具有描述性的内容是什么。 您的功能非常好。请发布整个脚本。 用你的脚本试试shellcheck.net。 【参考方案1】:根据您的信息,错误是不可重现的。这工作正常:
#!/bin/bash
function nvis()
while true; do
echo nvidia-smi
sleep $1
done
nvis 2
【讨论】:
【参考方案2】:我也尝试了您的代码 - 工作正常。我猜您的文件包含“隐藏”控制代码。试试:
cat -v yourfile # OR
cat -vE yourfile
看到任何特殊代码了吗? - 删除它们
另外,试试:
bash -nv yourfile
:)
【讨论】:
以上是关于Bash 脚本:意外标记附近的语法错误?的主要内容,如果未能解决你的问题,请参考以下文章