bash - 意外标记“<”附近的语法错误

Posted

技术标签:

【中文标题】bash - 意外标记“<”附近的语法错误【英文标题】:bash - syntax error near unexpected token `<' 【发布时间】:2012-04-08 09:18:27 【问题描述】:

我有一个这样的脚本:

dyski=$(df -h)

while read wiersz; do

i=0;
for token in $wiersz
do

    case $i in
        0)
            tresc="$tresc\nSystem plików: $token";
        ;;

        1)
            tresc="$tresc\nRozmiar całkowity: $token";
        ;;

        2)
            tresc="$tresc\nUżyte miejsce : $token";
        ;;

        3)
            tresc="$tresc\nDostępne miejsce: $token";
        ;;

        4)
            tresc="$tresc\nProcentowe użycie: $token";
        ;;
    esac

    i=$((i+1))
done

tresc="$tresc\n"

done < <(echo "$dyski")

当我在我的 Mandriva 上运行它时,它运行良好。但是当我将它移到 SLES11 时,它给出了一个错误:

./diskcheck.sh:第 42 行:意外标记附近的语法错误 <' ./diskcheck.sh: line 42:done

它有什么问题?提前感谢您的帮助。

【问题讨论】:

看起来你有两个“ 【参考方案1】:

我怀疑您错误地假设 /bin/sh 到处都是 bash。许多 Linux 发行版使用更简单的 shell(通常是 dash,有时是 ksh)作为 /bin/sh;如果你想使用 bash 特定的扩展,例如 &lt;(pipeline) 语法,你应该明确地使用 bash 作为 shell。

【讨论】:

以上是关于bash - 意外标记“<”附近的语法错误的主要内容,如果未能解决你的问题,请参考以下文章

Bash 脚本:意外标记附近的语法错误?

hadoop 3.1.2 ./start-all.sh 错误,意外标记 `<' 附近的语法错误

意外标记 `' ` 附近的语法错误

GDRIVE:意外标记“换行符”附近的语法错误

Bash 脚本中意外标记“if”附近的语法错误

谷歌大查询命令行执行复杂查询给出错误意外'('