【问题标题】:bash - syntax error near unexpected token `<'bash - 意外标记“<”附近的语法错误
【发布时间】: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

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

【问题讨论】:

  • 看起来你有两个“

标签: bash


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-02-26
    • 2018-12-18
    • 2014-01-20
    • 2015-12-11
    • 2021-07-29
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多