【问题标题】:Bash script: syntax error near unexpected token?Bash 脚本:意外标记附近的语法错误?
【发布时间】: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'

对不起,如果这很明显;我有点难过。

【问题讨论】:

  • 这类似于:stackoverflow.com/questions/1289026/…,但他们不接受命令行参数,这似乎是我的问题
  • 请写一个概括具体问题的标题。例如:为什么那个 bash 函数不需要参数?或类似的东西。
  • 这是怎么回事?由于某种原因它不需要参数?我在其他 bash 函数中使用了类似的语法,没有问题.... $1 是第一个命令行参数,不是吗?我更改了标题,但我不确定最具有描述性的内容是什么。
  • 您的功能非常好。请发布整个脚本。
  • 用你的脚本试试shellcheck.net

标签: bash command-line-arguments


【解决方案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
    

    :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 2016-09-06
      • 2014-02-26
      • 2018-12-18
      • 2014-01-20
      相关资源
      最近更新 更多