2015-01-31 98 views
2
function nvis() 
{ 
    while true; do 
    nvidia-smi 
    sleep $1 
    done 
} 

我试图使用它像:Bash脚本:意外令牌附近的语法错误?

nvis 2 

,我得到这样一个错误:

bash: syntax error near unexpected token `2' 

很抱歉,如果这是显而易见的;我很难过。

+0

这是类似于:http://stackoverflow.com/questions/1289026/syntax-for-a-single-line- bash-infinite-while-loop,但是他们没有使用命令行参数,这似乎是导致我的问题的原因 – David 2015-01-31 19:20:38

+1

请编写一个总结特定问题的标题。例如:为什么bash函数不期望参数?或类似的东西。 – 2015-01-31 19:24:28

+0

这是怎么回事?由于某种原因,它不期望参数?我在其他bash函数中使用了类似的语法,没有任何问题.... $ 1是第一个命令行参数,不是?我改变了标题,但我不确定最具描述性的东西是什么。 – David 2015-01-31 19:58:33

回答

3

根据您的信息,错误不可重现。这工作正常:

#!/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 

:)

相关问题