Запитання з тегом «bash»

Питання, характерні для Bourne Again SHell від GNU, на відміну від інших оболонок Bourne / POSIX. Для питань щодо оболонок Unix взагалі використовуйте тег / shell.

2
Як визначається стан повернення змінної призначення?
Я бачив конструкції в таких сценаріях: if somevar="$(somecommand 2>/dev/null)"; then ... fi Це десь задокументовано? Як визначається статус повернення змінної та як вона стосується підстановки команд? (Наприклад, чи отримав би я такий самий результат if echo "$(somecommand 2>/dev/null)"; then?)

2
"$?" Змінна (знак долара) питання доступна лише в оболонці Bash?
У Bashоболонці я можу отримати статус виходу команди через $?змінну: # ps -ef | grep "haha" root 15439 15345 0 23:02 pts/0 00:00:00 grep --color=auto haha # echo $? 0 Він доступний лише в оболонці Bash? Або я можу використовувати його і в інших оболонках?

3
PS1 підказка, щоб показати минулий час
В даний час я використовую це для відображення поточного часу в моєму записі bash: PS1=\[\e[0;32m\]\t \W>\[\e[1;37m\] 20:42:23 ~> Чи можливо відобразити минулий час з попереднього запиту? Як от: 00:00:00 ~> sleep 10 00:00:10 ~> sleep 20 00:00:20 ~> Це не має нічого спільного з Чи можливо періодично змінювати PS1 сценарієм …
10 bash  prompt 

2
Чому цикл на час зупиняється після призупинення?
Чому так, що використовуючи bash та призупиняючи цикл, а цикл припиняється після відновлення? Короткий приклад нижче. $ while true; do echo .; sleep 1; done . . ^Z [1]+ Stopped sleep 1 $ fg sleep 1 $ Мені знайомі сигнали, і я здогадуюсь, що це може бути природна поведінка баша …

3
Виконуйте команду кожні X секунд
Я хочу виконати команду будь-коли 10 секунд, і виконати її у фоновому режимі (тим самим усунути watch?). Усі відповіді показують щось на зразок наступного, але це триватиме 11–14 секунд. Як це можна досягти? while true; do # perform command that takes between 1 and 4 seconds sleep 10 done


7
Як я можу зробити сценарій для підрахунку до п'яти?
Я намагався зробити дуже простий сценарій bash, щоб перелічити всі кратні п’ять між 375 і 3500 (375, 380, 385 ...). Одне, що я намагався і не спрацював, це: for i in {375..3500} do echo $i (($i += 5)) done Через деякий час я відмовився і написав це в BASIC приблизно …
10 bash  shell  scripting 

1
Заміна баша зі змінною, визначеною з глобальної картини
Наведений нижче приклад пояснює проблему. Чому FILENAMEдрукується правильно, коли лунає і сприймається як зразок при використанні підстановки? #!/bin/bash FILEPATH_WITH_GLOB="/home/user/file_*" FILENAME=$(basename "$FILEPATH_WITH_GLOB") echo $FILENAME #file_1234 echo ${FILENAME:1:5} #ile_* <---why is this not ile_1

1
OS X, bash: менше працює на дескрипторах відкритих файлів, cat не працює
У bash-скрипті, над яким я працюю (який повинен працювати на Ubuntu та OS X), мені потрібно перенаправити висновок сотень команд у файл. Замість того, щоб додати їх &>...до всіх, я просто роблю exec 9>&1 exec 5<>/tmp/some-file.txt exec 1>&5 Поки добре, але на півдорозі всіх цих команд мені потрібно прочитати все, …

1
запобігти багаторядкові пасти в баш
Я часто використовую ctrl+cдля копіювання тексту з якоїсь програми gui, а потім вставляю його в свій емулятор терміналу (термінатор), використовуючи меню клацання правою клавішею миші та вставку. Іноді я забуваю, що буфер обміну містить кілька рядків, які при вставці в bash викликають "виконання" кожного рядка Чи є якесь рішення, щоб …

1
Відстежуйте певні параметри в якійсь команді
Скажімо, у мене є команда git branch(завжди з парою слів), наприклад. Те, що я хочу, - це відслідковувати, коли ця команда виконується аргументами. Наприклад, якщо я виконую команду git branch developбез помилок, я хочу зберегти developу файлі. Я спробував замінити команду git на моєму .bash_profile, приблизно так: git () { …
10 bash  shell  function 

6
Як перевірити, чи існує файл у межах awk? [-d 'ім'я файлу'] не вдалося
Я намагаюся створити список користувачів, у яких домашній каталог не існує. Здається, я мав би бути в змозі зробити це з awk, але щось не в моєму синтаксисі. Він постійно говорить мені "Недійсний синтаксис" у]. Що я роблю неправильно? awk -F: '{ if(![ -d "$6"]){ print $1 " " $3 …
10 bash  awk  directory 

3
Чи може підстановка команд вкладатись у змінну підстановку?
Я хотів би використовувати змінну підстановку для певного рядка, до якого я отримую доступ через команду. Наприклад, якщо я щось копіюю в буфер обміну, я можу отримати доступ до нього так. $ xclip -o -selection clipboard Here's a string I just copied. Якщо я призначу його змінній, то я можу …

3
Передача сценарію з "читанням" на баш
Мені потрібно запустити сценарій по конвеєру через bashз wget(а не працює безпосередньо з Баш). $ wget -O - http://example.com/my-script.sh | bash Це не працює, оскільки мій сценарій містить readу ньому заяви. Чомусь вони не працюють при переході на баш: # Piping to bash works in general $ echo 'hi' hi …
10 bash  shell  pipe  read 

1
Повторний прогрес у фоновому процесі без підказки про викрадення
Розглянемо простий сценарій hello: #!/bin/bash echo 'hello world!' Тепер від bash, якщо я спробую запустити це у фоновому режимі: $ hello & [1] 12345 $ hello world! █ <--- prompt is stuck here until I hit enter! [1]+ Done $ █ <--- prompt back to normal Що я хотів би …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.