Вопросы с тегом «bash»

Вопросы, специфичные для GNU Bourne Again SHell, в отличие от других оболочек Bourne / POSIX. Для вопросов о оболочках Unix в целом используйте вместо этого тег / shell.

4
Почему вырезать не удается с помощью bash, а не zsh?
Я создаю файл с разделенными табуляцией полями. echo foo$'\t'bar$'\t'baz$'\n'foo$'\t'bar$'\t'baz > input У меня есть следующий скрипт с именем zsh.sh #!/usr/bin/env zsh while read line; do <<<$line cut -f 2 done < "$1" Я проверяю это. $ ./zsh.sh input bar bar Это отлично работает. Однако, когда я изменяю первую строку, чтобы …

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
Почему цикл while останавливается после приостановки?
Почему при использовании bash и приостановке цикла while цикл возобновляется после возобновления? Краткий пример ниже. $ while true; do echo .; sleep 1; done . . ^Z [1]+ Stopped sleep 1 $ fg sleep 1 $ Я знаком с сигналами, и я предполагаю, что это может быть естественным поведением bash, …

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


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

1
Подстановка Bash с переменной, определенной из шаблона glob
Приведенный ниже пример объясняет проблему. Почему 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
Отслеживать определенные параметры по какой-либо команде
Скажем, у меня есть команда git branch(всегда с парой слов), например. Я хочу отслеживать, когда эта команда выполняется с аргументами. Например, если я выполню команду git branch developбез ошибок, я хочу сохранить developфайл. Я попытался переписать команду git на моем .bash_profile, что-то вроде этого: git () { if [ $# …
10 bash  shell  function 

1
предотвратить многострочную вставку в bash
Я часто использую, ctrl+cчтобы скопировать текст из некоторого графического приложения, а затем вставить его в мой эмулятор терминала (терминатор), используя правую кнопку мыши и щелкнуть меню и вставить. Иногда я забываю, что буфер обмена содержит несколько строк, которые при вставке в bash заставляют каждую строку «исполняться» Есть какое-то решение, чтобы …

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
Передача сценария с надписью «read» в bash
Мне нужно запустить сценарий по конвейеру через bashс wget(а не работает непосредственно с Баш). $ wget -O - http://example.com/my-script.sh | bash Это не работает, потому что в моем сценарии есть readоператоры. По какой-то причине они не работают при подключении к bash: # Piping to bash works in general $ echo …
10 bash  shell  pipe  read 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.