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

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

15.10.2010, 23:20. Показов 4486. Ответов 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
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 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. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru