2015-01-31 115 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 

:)

相關問題