ubuntu 14.04 中的 bash 脚本错误

ubuntu 14.04 中的 bash 脚本错误

我在 ubuntu 12.04.5 上编写了一个脚本,该脚本运行良好,但是在升级到 14.04.2 以修复另一个问题后,我现在遇到了该脚本的问题。

它在第一组命令处停止了,我似乎无法确定原因;我根据谷歌搜索结果做了修改,但每次更改都会导致更多错误。

脚本当前停滞的部分是

#!/bin/bash

V=1.5.4

DELAY=3

if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2

    sleep 5
   exit 1

fi

while [[$REPLY != 0 ]]; do

    clear

    cat <<- _EOF_

        Please Select:

        1. Menu option 1
        2. Menu option 2
        3. Menu option 3
        4. Menu option 4
        5. Menu option 5
        6. Menu option 6
        7. Menu option 7
        0. Exit

    _EOF_
    read -p "Enter selection [0-7] >"

if [[ $REPLY =~ ^[0-7]$ ]]; then

        if [[ $REPLY == 1 ]]; then 

当我使用运行上述脚本时,sudo ./config.sh我收到错误

./config.sh: line 23 [[: command not found

当我删除多余的括号时,我收到错误

./config.sh: line 23: [: !=: unary operator expected

在完整脚本中,包含 while 的行[[$REPLY != 0 ]]; do是第 23 行

添加引号也会$Reply导致同样的错误。

我不明白自从升级到较新的 LTS 以来,bash 内部发生了哪些变化。如能得到任何帮助,我将不胜感激。

答案1

[[您漏掉了和之间的空格$REPLY

while [[$REPLY != 0 ]]; do

应该

while [[ $REPLY != 0 ]]; do

相关内容