С Новым годом! Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/23: Рейтинг темы: голосов - 23, средняя оценка - 4.78
 Аватар для zikker
2 / 2 / 0
Регистрация: 06.10.2010
Сообщений: 39

Коды возврата.

15.10.2010, 23:20. Показов 4483. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
 
foo()
{
    if [ $1 == "Yes" ]; then
        echo "Yes"
    fi
    return 0
}
 
if foo "Yes"; then
    echo "Return 0"
else
    echo "Return 1"
fi
 
exit 0
Почему это выводит

Yes
Return 0

а не
Yes
Return 1 ?
Ведь 0 это false и вывести должно было 1.(по аналогии с C/C++)

Добавлено через 18 минут
И ещё если несложно то как разбить строку(получается через mpc ls "Best Classic")
на отдельные строки(название песни):
Best Classic/Дога - Мой ласковый и нежный зверь.mp3
Best Classic/Свиридов - Время, вперед!.mp3
Best Classic/Гуно - Куплеты Мефистофеля (Фауст).mp3
Best Classic/Кальман - Песенка Бони (Сильва).mp3
Best Classic/Бизе - Хабанера (Кармен).mp3
Best Classic/Моцарт - Реквием ре-минор K 626.mp3
Best Classic/Григ - В пещере Горного Короля (Пер Гюнт).mp3
Best Classic/Верди - Высоко поднимем сей кубок (Травиата).mp3
Best Classic/Вагнер - Полет Валькирий (Валькирия).mp3
(это в одной переменной) просто название каждой песни надо заключить в xml код.
Для создания меню openbox.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.10.2010, 23:20
Ответы с готовыми решениями:

Коды возврата
Код возврата 2. Причина: ошибки работы встроенных средств оболочки. Мой вопрос: какие есть у оболочки встроенные средства? Код возврата...

Как получить код возврата?
Здравствуйте! Просьба подсказать, как можно получить код ошибки php скрипта: <?php echo "abc"; exit(50); ...

Какой способ не является правильными для возврата значений из функций в bash
Какой способ не является правильными для возврата значений из функций в bash. 1 echo-печать в stdout, который будет перехвачен...

12
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
16.10.2010, 05:15
Code
1
2
3
4
5
6
[guest@localhost ~]$ s='Best Classic/Дога - Мой ласковый и нежный зверь.mp3'
[guest@localhost ~]$ echo $s
Best Classic/Дога - Мой ласковый и нежный зверь.mp3
[guest@localhost ~]$ echo $s | cut -d'/' -f2
Дога - Мой ласковый и нежный зверь.mp3
[guest@localhost ~]$
Добавлено через 1 минуту
Ведь 0 это false
нет, ноль - это как раз true, а вот не ноль - false

Добавлено через 1 минуту
потому на C пишут return 0; в конце успешно завершившейся программы (чтобы операционная среда знала)
Code
1
2
3
4
5
6
7
8
9
10
11
12
[guest@localhost ~]$ echo x > file
[guest@localhost ~]$ cat file
x
[guest@localhost ~]$ echo $?
0
[guest@localhost ~]$ rm file
rm: удалить обычный файл «file»? y
[guest@localhost ~]$ cat file
cat: file: Нет такого файла или каталога
[guest@localhost ~]$ echo $?
1
[guest@localhost ~]$
1
 Аватар для zikker
2 / 2 / 0
Регистрация: 06.10.2010
Сообщений: 39
16.10.2010, 12:54  [ТС]
По поводу 0 понял просто в других языках (C) условие if выполняется с любым отличным от нуля(false) значением.
по поводу mpc уточню:
Bash
1
2
music=`mpc ls "Best Classic"`
echo $music
выводит примерно следующие
Best Classic/Монти - Чардаш.mp3 Best Classic/Моцарт - Симфония N40, часть 1 K 550.mp3 Best Classic/Бетховен - Лунная соната (Соната для фортепиано N14).mp3 Best Classic/Вивальди - Весна (Времена года RV 315).mp3 Best Classic/Огиньский - Полонез ''Прощание с Родиной''.mp3 Best Classic/Бах - Токката и фуга ре-минор BWV 565.mp3 Best Classic/Григ - Утреннее настроение (Пер Гюнт).mp3 Best Classic/Чайковский - Концерт N1 для фортепиано с оркестром, часть 1.mp3 Best Classic/Лист - Грезы Любви (Ноктюрн N3 S 541).mp3 Best Classic/Глинка - Увертюра к опере ''Руслан и Людмила''.mp3 Best Classic/Россини - Сорока-воровка.mp3 Best Classic/Хачатурян - Танец с саблями (Гаянэ).mp3 Best Classic/Гершвин - Летняя пора (Порги и Бесс).mp3 Best Classic/Равель - Болеро.mp3 Best Classic/Шуберт - Аве Мария.mp3 Best Classic/Рахманинов - Итальянская полька.mp3 Best Classic/Сен-Санс - Лебедь (Карнавал животных).mp3 Best Classic/Брамс - Венгерский танец N5.mp3 Best Classic/Альбинони - Адажио соль-минор для органа и струнных.mp3 Best Classic/Штраус - Вальс ''Голубой Дунай''.mp3 Best Classic/Римский-Корсаков - Полет шмеля (Сказка о царе Салтане).mp3 Best Classic/Чайковский - Танец пастушков (Щелкунчик).mp3 Best Classic/Бизе - Прелюдия к опере ''Кармен''.mp3 Best Classic/Бетховен - Аллегро с огнем (Симфония N5).mp3 Best Classic/Россини - Увертюра к опере ''Севильский цирюльник''.mp3 Best Classic/Вивальди - Зима (Времена года RV 315).mp3 Best Classic/Хачатурян - Вальс (Маскарад).mp3 Best Classic/Мендельсон - Свадебный марш.mp3 Best Classic/Чайковский - Вступление из балета ''Лебединое озеро''.mp3 Best Classic/Шопен - Вальс - минутка (Вальс до-диез минор).mp3 Best Classic/Бах - Менуэт (Оркестровая сюита N2 си-минор BWV 1067).mp3 Best Classic/Свиридов - Вальс (Метель).mp3 Best Classic/Глинка - Марш Черномора (Руслан и Людмила).mp3 Best Classic/Дебюсси - Лунный свет.mp3 Best Classic/Делиб - На цыпочках.mp3 Best Classic/Бизе - Сюита (Кармен).mp3 Best Classic/Шопен - Ноктюрн N2 ми-бемоль (Опус 9).mp3 Best Classic/Чайковский - Испанский танец (Лебединое озеро).mp3 Best Classic/Шуберт - Музыкальный момент N3 фа-минор D 780.mp3 Best Classic/Шостакович - Лирический вальс.mp3 Best Classic/Свиридов - Романс (Метель).mp3 Best Classic/Штраус - Вальс ''Сказки венского леса''.mp3 Best Classic/Бах - Музыкальная шутка (Сюита N2 си-минор BWV 1067).mp3 Best Classic/Готтшальк - Сувениры Андалузии.mp3 Best Classic/Чайковский - Танец маленьких лебедей (Лебединое озеро).mp3 Best Classic/Моцарт - Фантазия ре-минор K 397.mp3 Best Classic/Гуно - Концертный вальс ''Маргарита'' (Фауст).mp3 Best Classic/Дворжак - Славянский танец N2 (Опус 72).mp3 Best Classic/Моцарт - Маленькая серенада K 525.mp3 Best Classic/Шуман - Сновидение (Сцены из детства).mp3 Best Classic/Григ - Танец Анитры (Пер Гюнт).mp3 Best Classic/Паганини - Рондо (Скрипичный концерт N2).mp3 Best Classic/Шопен - Вальс N2 си-минор (2 вальса, опус 69).mp3 Best Classic/Чайковский - Русский танец (Лебединое озеро).mp3 Best Classic/Кларк - Соло на трубе.mp3 Best Classic/Моцарт - Дивертисмент N11 K 136.mp3 Best Classic/Бетховен - Буря (Соната для фортепиано N17).mp3 Best Classic/Чайковский - Вальс цветов (Щелкунчик).mp3 Best Classic/Берлиоз - Карнавал.mp3 Best Classic/Рахманинов - Вариации на тему Паганини.mp3 Best Classic/Оффенбах - Баркаролла (Сказки Гофмана).mp3 Best Classic/Штраус - Охота - быстрая полька.mp3 Best Classic/Крейслер - Прекрасная Розмари.mp3 Best Classic/Минкус - Танец Китри (Дон Кихот).mp3 Best Classic/Сен-Санс - Интродукция и рондо-каприччиозо.mp3 Best Classic/Чайковский - Полонез (Евгений Онегин).mp3 Best Classic/Грибоедов - Два вальса.mp3 Best Classic/Россини - Тарантелла.mp3 Best Classic/Рубинштейн - Мелодия.mp3 Best Classic/Прокофьев - Вальс (Война и мир).mp3 Best Classic/Бах - Рондо (Оркестровая сюита N2 си-минор BWV 1067).mp3 Best Classic/Моцарт - Рондо аллегро (Маленькая серенада K 525).mp3 Best Classic/Вивальди - Летняя гроза (Времена года RV 315).mp3 Best Classic/Бетховен - Соната для фортепиано N1.mp3 Best Classic/Чайковский - Вальс-аллегро (Спящая красавица).mp3 Best Classic/Гендель - Анданте (Сюита ''Музыка воды'' HWV 348).mp3 Best Classic/Штраус - Так говорил Заратустра.mp3 Best Classic/Бах - Воздух (Оркестровая сюита N3 ре-мажор BWV 1068).mp3 Best Classic/Шопен - Этюд N2 фа-минор (Опус 25).mp3 Best Classic/Кальман - Сцена из оперетты ''Сильва''.mp3 Best Classic/Гершвин - Прелюдия для фортепиано.mp3 Best Classic/Чайковский - Чай. Китайский танец (Щелкунчик).mp3 Best Classic/Моцарт - Турецкий марш (Соната для фортепиано N11 K 331).mp3 Best Classic/Шуберт - Серенада.mp3 Best Classic/Пёрселл - Рондо.mp3 Best Classic/Паганини - Каприз N24 ля-минор.mp3 Best Classic/Бах - Ларго (Концерт N5 фа-минор BWV 1056).mp3 Best Classic/Чайковский - Декабрь - Святки (Времена года).mp3 Best Classic/Шостакович - Вальс N2.mp3 Best Classic/Моцарт - Анданте (Концерт N21 K 467 ''Эльвира Мадиган'').mp3 Best Classic/Шостакович - Романс.mp3 Best Classic/Чайковский - Неаполитанский танец (Лебединое озеро).mp3 Best Classic/Гендель - Прибытие королевы Шебы (Соломон).mp3 Best Classic/Рахманинов - Прелюдия N5 соль-минор (Опус 23).mp3 Best Classic/Боккерини - Менуэт (Квинтет ми-мажор).mp3 Best Classic/Верди - Триумфальный марш (Аида).mp3 Best Classic/Россини - Увертюра к опере ''Вильгельм Телль''.mp3 Best Classic/Бетховен - К Элизе (Багатель ля-минор).mp3 Best Classic/Чайковский - Марш (Щелкунчик).mp3 Best Classic/Григ - Песня Сольвейг (Пер Гюнт).mp3 Best Classic/Дога - Мой ласковый и нежный зверь.mp3 Best Classic/Свиридов - Время, вперед!.mp3 Best Classic/Гуно - Куплеты Мефистофеля (Фауст).mp3 Best Classic/Кальман - Песенка Бони (Сильва).mp3 Best Classic/Бизе - Хабанера (Кармен).mp3 Best Classic/Моцарт - Реквием ре-минор K 626.mp3 Best Classic/Григ - В пещере Горного Короля (Пер Гюнт).mp3 Best Classic/Верди - Высоко поднимем сей кубок (Травиата).mp3 Best Classic/Вагнер - Полет Валькирий (Валькирия).mp3
Как название каждой песни(Best Classic/Вагнер - Полет Валькирий (Валькирия).mp3)
записать в отдельную переменную ?(или как то добавить xml оформление). Желательно в цикле так как xml код будет одинаковый а изменятся только название песни.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
16.10.2010, 13:09
ls -1
хотя это, по ходу, внутренний аргумент mpc
в любом случае тебе надо сначала отделить песни друг от друга каким-нибудь символом
0
 Аватар для zikker
2 / 2 / 0
Регистрация: 06.10.2010
Сообщений: 39
16.10.2010, 17:49  [ТС]
Всем спасибо всё решил(спс товарищу GotF c ЛОР за скрипт).
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash
 
get-artists(){
    { echo list artist; echo close; } | nc localhost 6600 \
    | grep "^Artist:" | cut -d " " -f 2-
}
 
echo "<openbox_pipe_menu>";
 
 
echo "<separator label=\"Artists\"/>"
get-artists | while read artist; do
    echo "<item label=\"${artist}\">
    <action name=\"Execute\">
    <execute>projects/mpc_in_box/mpc-replace.sh \"${artist}\"</execute>
    </action>
    </item>"
done
echo "</openbox_pipe_menu>"
 
 
exit 0
(Скрипт запускает выбранного исполнителя(а большего и не надо)).
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
17.10.2010, 07:13
Bash
1
2
music=`mpc ls "Best Classic"`
echo $music
ещё попробуй
Bash
1
2
music="`mpc ls "Best Classic"`"
echo "$music"
что-то я сразу не засёк

должно вывести на разных строках
1
 Аватар для zikker
2 / 2 / 0
Регистрация: 06.10.2010
Сообщений: 39
17.10.2010, 22:51  [ТС]
В конце получилось так (если кому интересно)
Bash
1
2
3
echo "${text}" | while read str; do
echo "${str}"
done
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
18.10.2010, 01:42
Code
1
2
3
4
5
6
7
8
9
10
11
[guest@localhost tmp]$ A=10
[guest@localhost tmp]$ echo -e "one\ntwo\nthree" | while read; do echo $REPLY; ((A++)); echo $A; done
one
11
two
12
three
13
[guest@localhost tmp]$ echo $A
10
[guest@localhost tmp]$
это неявное свойство этой конструкции

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[guest@localhost tmp]$ A=10
[guest@localhost tmp]$ for L in $(echo -e "one\ntwo\nthree"); do echo $L; ((A++)); echo $A; done
one
11
two
12
three
13
[guest@localhost tmp]$ echo $A
13
[guest@localhost tmp]$ for L in $(echo -e "one\ntwo\nthree"); do echo $L; ((A++)); echo $A; done
one
14
two
15
three
16
[guest@localhost tmp]$ echo $A
16
[guest@localhost tmp]$
то есть, когда ты юзаешь | while read, ты не можешь создавать там переменные, труба означает запуск подпроцесса, и всё, что там будет создано, будет разрушено по выполнению
а данный пример показывает, что ты не можешь ещё и менять какое-нибудь значение (A остаётся прежней, ты не сможешь провести изменения с A, с помощью конструкции | while read, чтобы использовать их после цикла)
1
 Аватар для zikker
2 / 2 / 0
Регистрация: 06.10.2010
Сообщений: 39
18.10.2010, 02:30  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
чтобы использовать их после цикла)
Это мне не надо. mpc нужен как интерфейс к демону проигрывателю(mpd) а скрипт просто берёт списки директорий, треков, прослушанных композиций и позволяет их запускать.(всё делается в цикле для заполнения меню wm) за инфу спасибо буду знать(в книжке всего одна глава про bash так что всех тонкостей не знаю.)
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
18.10.2010, 02:39
не, просто можно привыкнуть по незнанию, типа удобно
а на самом деле сковывает код
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
18.10.2010, 14:48
Цитата Сообщение от zikker Посмотреть сообщение
в книжке всего одна глава про bash так что всех тонкостей не знаю
http://www.opennet.ru/docs/RUS... ing_guide/
1
 Аватар для zikker
2 / 2 / 0
Регистрация: 06.10.2010
Сообщений: 39
18.10.2010, 18:41  [ТС]
А как отсюда вытащить первую строчку ?
Дебюсси
[paused] #1/1 0:38/5:11 (12%)
volume:100% repeat: off random: off single: off consume: off
PS Значение второй и третий могут изменяться. пробовал через
Bash
1
echo $text | read name
не получилось.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
19.10.2010, 06:21
head -1
кавычки не забывай

а вторую
head -2 | tail -1

Добавлено через 2 минуты
Code
1
2
3
4
5
6
7
[guest@localhost ~]$ A=$'abc\ndef'
[guest@localhost ~]$ echo $A
abc def
[guest@localhost ~]$ echo "$A"
abc
def
[guest@localhost ~]$
Добавлено через 4 минуты
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[guest@localhost ~]$ echo -e "abcd\ndefg\nghij"
abcd
defg
ghij
[guest@localhost ~]$ echo -e "abcd\ndefg\nghij" | sed "1p;d"
abcd
[guest@localhost ~]$ echo -e "abcd\ndefg\nghij" | sed "2p;d"
defg
[guest@localhost ~]$ echo -e "abcd\ndefg\nghij" | sed "3p;d"
ghij
[guest@localhost ~]$ echo -e "abcd\ndefg\nghij" | sed "1,2p;d"
abcd
defg
[guest@localhost ~]$ echo -e "abcd\ndefg\nghij" | sed "2,3p;d"
defg
ghij
[guest@localhost ~]$
Добавлено через 3 часа 52 минуты
Code
1
2
3
4
5
6
7
8
[guest@localhost ~]$ A=$'abc\ndef\nghi'
[guest@localhost ~]$ B=nothing
[guest@localhost ~]$ I=0
[guest@localhost ~]$ echo "$A" | while read; do ((I++)); if [ $I -eq 2 ]; then B=$REPLY; echo $I $B; fi; done
2 def
[guest@localhost ~]$ echo $B
nothing
[guest@localhost ~]$
Code
1
2
3
4
5
6
7
8
[guest@localhost ~]$ A=$'abc\ndef\nghi'
[guest@localhost ~]$ B=nothing
[guest@localhost ~]$ I=0
[guest@localhost ~]$ for L in $(echo "$A"); do ((I++)); if [ $I -eq 2 ]; then B=$L; echo $I $B; fi; done
2 def
[guest@localhost ~]$ echo $B
def
[guest@localhost ~]$
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2010, 06:21
Помогаю со студенческими работами здесь

Как проверить что поступает в проверку if код возврата или вывод программы
Доброго времени суток форумчане ! Хотел пройти курс в степике , уже второй день не могу решить..... Мы рассказали, что можно...

Непонятный символ возврата каретки в bash скрипте
Привет) Имею простенький скрипт: #create_username.sh ./create.sh 3xEwxAZ8 и #create.sh rm $1.zip mkdir $1 cp -r some_dir $1...

Коды возврата ошибок (расшифровки ErrorLevel)*
Коды возврата ошибок (встроенных команд и других программ) Для новичков - очень подробно расписано в теме:...

Изучаю C# по книге Шилдта. И не могу понять принцип возврата из метода и возврата значения
Объясните пожалуйста простыми словами

В чем разница между exit(код возврата) и ExitProcess (код возврата)?
Я так себе представляю, имеется два варианта выхода из приложения, с передачей кода возврата: 1. Функцией ExitProcess(код возврата); 2....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru