Исключение при запуске простого сценария sh

Указанная папка принадлежит root, поэтому вы должны создать и отредактировать файл с правами root. Для этого вы можете нажать Alt + F2 и набрать

gksu gedit /etc/pm/config.d/config

Вам будет предложено ввести пароль root.

Если вы знакомы с терминалом, вы можете легко создать файл с помощью команды

gksu gedit /etc/pm/config.d/config

[d8 ] sudo nano /etc/pm/config.d/config

0
задан 11 May 2018 в 10:22

2 ответа

Во-первых, я считаю, что [ 10 == 20 ] - опечатка, и это должно быть [ "$a" == "$b" ]. Second @ dsstorefile1 прав В POSIX sh, == не поддерживается.

Если вы используете shellcheck, вы можете сами это выяснить:

$ shellcheck script.sh In script.sh line 4: if [ "$a" == "$b" ] ^-- SC2039: In POSIX sh, == is not supported.

Вот немного продвинутый версию вашего скрипта, которая могла бы обрабатывать первые два позиционных параметра:

#!/bin/sh a="$1" b="$2" if [ "$a" = "$b" ] then echo "a is equal to b" else echo "a is not equal to b" fi

Затем вы можете использовать его следующим образом:

$ ./script.sh 10 20 a is not equal to b $ ./script.sh 10 10 a is equal to b
2
ответ дан 17 July 2018 в 14:41

Во-первых, я считаю, что [ 10 == 20 ] - опечатка, и это должно быть [ "$a" == "$b" ]. Second @ dsstorefile1 прав В POSIX sh, == не поддерживается.

Если вы используете shellcheck, вы можете сами это выяснить:

$ shellcheck script.sh In script.sh line 4: if [ "$a" == "$b" ] ^-- SC2039: In POSIX sh, == is not supported.

Вот немного продвинутый версию вашего скрипта, которая могла бы обрабатывать первые два позиционных параметра:

#!/bin/sh a="$1" b="$2" if [ "$a" = "$b" ] then echo "a is equal to b" else echo "a is not equal to b" fi

Затем вы можете использовать его следующим образом:

$ ./script.sh 10 20 a is not equal to b $ ./script.sh 10 10 a is equal to b
3
ответ дан 20 July 2018 в 14:45
  • 1
    ./duke.sh 10 20 ./duke.sh: строка 9: синтаксическая ошибка вблизи неожиданного токена fi' ./duke.sh: line 9: fi ' – Abhishek Gowlikar 10 May 2018 в 10:25
  • 2
    после заявления fi нет утверждения. – Abhishek Gowlikar 10 May 2018 в 10:31
  • 3
    Пожалуйста, ответьте на любой вопрос. – Abhishek Gowlikar 10 May 2018 в 10:47
  • 4
    @AbhishekGowlikar, вероятно, что-то не так с тем, как вы вводите / запускаете скрипт - например, окончания строки Windows или другие непечатаемые символы – steeldriver 10 May 2018 в 11:06
  • 5
    Другое сообщение: если вы замените /bin/sh на /bin/bash, ваш скрипт работает. – muclux 10 May 2018 в 11:43
  • 6
    @AbhishekGowlikar, вы могли бы поблагодарить также за счет голосования и (или) принять полезные ответы :-) Btw, Muclux совершенно прав в вашем случае, гораздо лучше использовать операторы сравнения целого числа . – pa4080 10 May 2018 в 12:03

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

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