Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Переменные SUCCESS=0 ; E_NOARGS=65 - что это ?  (Прочитано 1640 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Переменные SUCCESS=0 ; E_NOARGS=65 - что это ?
« Ответ #15 : 05 Мая 2017, 15:13:19 »
Подскажите пару статей
Advanсed Bash Scripting Guide. Есть и на русском.
Очень плохо когда начинают «лепить» команды все подряд, не очень понимая зачем они надо. Вы этот параметр set -o errexit установили? И что Вы теперь ждете, какого
статуса выполнения вызываемого скрипта
, где?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн alex-sky

  • Автор темы
  • Участник
  • *
  • Сообщений: 189
    • Просмотр профиля
Re: Переменные SUCCESS=0 ; E_NOARGS=65 - что это ?
« Ответ #16 : 06 Мая 2017, 15:18:03 »
Спасибо.

(Нажмите, чтобы показать/скрыть)

Я исправил, код теперь такой
Код: (Bash) [Выделить]
#!/usr/bin/env bash
read -p "Введите путь к файлу с расширением --rpm-- : " path
echo

bash ./redireckt-test.sh "$path"

status="$?"

echo "exit-status ---- $status --- "

Теперь понятен смысл работы данных переменных - SUCCESS=0 ; E_NOARGS=65
 Понятно, что указывая значение для выхода по завершению скрипта , например EXIT 5, я могу дальше обрабатывать эти значения...

Цитировать
?      Expands to the exit status of the most recently executed foreground pipeline.

 Развернуть exit статус самого последнего выполненного приоритетного конвейера (в моем случае статус работы вызываемого скрипта.

Поэтому сразу после этой команды должно быть получено значение переменной $?.
 
Ошибкой будет так ...
Код: (javascript) [Выделить]
bash ./redireckt-test.sh "$path"

echo

status="$?"

так как мы получим просто exit статус команды echo
 




Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Переменные SUCCESS=0 ; E_NOARGS=65 - что это ?
« Ответ #17 : 06 Мая 2017, 15:21:40 »
1. $? не нужно ковычить, т.к это просто число (код)
2. Использовать переменную (status) нужно только если ее значение используется 2 и более раз.
« Последнее редактирование: 06 Мая 2017, 15:24:05 от renzrv »

 

Страница сгенерирована за 0.029 секунд. Запросов: 23.