[: Напиток: Унарный оператор ожидается

Когда я работаю, этот alarm.sh 5 использования "Пьют чай". Я добираюсь

/home/andy/bin/alarm.sh: line 27: [: Drink: unary operator expected

alarm.sh

  soundfile="/usr/share/sounds/My_Sounds/Alarm-sound-buzzer.mp3"
    #amixer -D pulse sset Master 50% > /dev/null 2>&1
    originalVolume=$(amixer -D pulse get Master | grep -m 1 -o -E [[:digit:]]+%)
    clear
    amixer -D pulse sset Master 50% > /dev/null 2>&1
    if [ -f "$soundfile" ];
    then
         echo "Soundfile is present."
    else

      echo "File $soundfile does NOT exist."
      echo
      echo "Program will now exit."
      exit
    fi

    [ ! $2 ] && {
    echo 
    echo -e "   Error!! No time value given for sleep and/or message !!"
    echo
    echo -e "   Alarm Program 2018"
    echo
    echo -e "   alarm.sh [time value in seconds] Message in double Quotes"; 
    echo -e "   alarm 5m   = 5 minute alarm"
    echo -e "   alarm 5h   = 5 hour alarm"
    echo -e "   alarm 5d   = 5 day alarm"
    echo -e "   alarm 1.5m = 1 minute 30 seconds alarm"
    echo 
    echo -e "   alarm.sh 1m "\"Take bread out of oven."\""  

    echo 
    exit 1; }
    echo  -e "\033[32;5mTIMER COUNTING DOWN to $1 \033[0m"
    sleep $1
    {
        for ((volume = 35; volume <= 50; volume += 2)); do
            amixer -D pulse sset Master ${volume}% > /dev/null
            sleep .5
        done
    } &

    cvlc --play-and-exit "$soundfile" > /dev/null 2>&1
    echo $2
    #set back to original volume
    amixer -D pulse sset Master %40

    gxmessage -fg blue -font  'sans 20' -timeout 2 ' TIME IS UP !!'
0
задан 17 February 2019 в 07:20

1 ответ

Проверять ли позиционный параметр $2 пусто, используйте -z тестовый оператор и не забывает заключать переменную в кавычки:

[ -z "$2" ]

Посмотрите help test:

String operators:

  -z STRING      True if string is empty.

  -n STRING
     STRING      True if string is not empty.

Также не забывайте добавлять соответствующую хижину #!/bin/bash наверху Вашего файла (особенно, если Вы используете echo -e).

5
ответ дан 26 October 2019 в 05:48

Другие вопросы по тегам:

Похожие вопросы: