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

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

1
Почему нельзя изменить порядок оператора перенаправления ввода для циклов while?
В Bash вы можете переместить операторы перенаправления ввода в начало команды: cat <<< "hello" # equivalent to <<< "hello" cat Почему вы не можете сделать то же самое для цикла while? while read -r line; do echo "$line"; done <<< "hello" # hello <<< "hello" while read -r line; do …

3
Почему sh (не bash) жалуется на функции, определенные в моем .bashrc?
Я получаю это, когда я открываю терминальную сессию: sh: ошибка импорта определения функции для `read.json ' sh: ошибка импорта определения функции для `ts-project ' sh не любит эти функции, потому что они выглядят так: read.json(){ :: } и ts-project(){ :: } реальный вопрос - зачем shтрогать / интерпретировать эти файлы? …

2
Почему я теряю данные при использовании этой конструкции bash pipe?
Я пытаюсь объединить несколько программ примерно так (пожалуйста, игнорируйте любые дополнительные включения, это тяжелая работа в процессе): pv -q -l -L 1 < input.csv | ./repeat <(nc "host" 1234) Где источник программы повтора выглядит следующим образом: #include <fcntl.h> #include <stdint.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/epoll.h> #include <sys/stat.h> …

2
Скрипт Bash должен убивать только те экземпляры другого скрипта, которые он запустил
В текущей ситуации определенный сценарий call.sh запускает другой фоновый файл named.sh в фоновом режиме, выполняет другие операции, некоторое время бездействует, а затем завершает вызов файла named.sh с помощью a pkill called.sh. Это отлично работает. Затем, я также хотел бы запустить 'named.sh' из других терминалов в качестве отдельного скрипта в любое …
11 bash  process 

2
Почему я не могу использовать переменные в качестве префикса команды для установки переменных среды?
Как правило, для команды можно установить переменную среды, добавив к ней префикс следующим образом: hello=hi bash -c 'echo $hello' Я также знаю, что мы можем использовать переменную для замены любой части вызова команды, например: $ cmd=bash $ $cmd -c "echo hi" # equivalent to bash -c "echo hi" Я был …

3
Ловушка Ctrl + C для скрипта bash, но не для процесса, открытого в этом скрипте
Я пытался создать интерактивную программу в скрипте bash: my_program И я хочу иметь возможность закрыть его с помощью Ctrl + C. Но когда я это делаю, мой скрипт тоже закрывается. Я знаю о. trap '' 2 my_program trap 2 Но в этом случае я просто не могу закрыть my_programс помощью …
11 bash  trap 

2
Почему `time` отсутствует в руководстве по GNU Bash?
[fakename]$ help time time: time [-p] pipeline Report time consumed by pipeline's execution... Из этого, кажется, что timeвстроенный Bash. Однако я не могу найти описание этого на этой странице: https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html#Shell-Builtin-Commands . Почему это так?
11 bash  man  time 

1
У Bash проблемы с производительностью при использовании списков аргументов?
Решено в bash 5.0 Фон Для справки (и понимания (и попыток избежать отрицательных голосов этот вопрос, кажется, привлекает)) я объясню путь, который привел меня к этой проблеме (ну, лучшее, что я могу вспомнить через два месяца). Предположим, вы выполняете некоторые тесты оболочки для списка символов Unicode: printf "$(printf '\\U%x ' …
11 linux  bash  time 

2
Какова продолжительность жизни файлового дескриптора?
Как описано здесь , перенаправления используются open()для записи в файл. В оболочке есть внутренний (?) Файловый дескриптор, который затем используется при необходимости. Внутренний дескриптор создается на протяжении всего сценария или времени жизни оболочки? Разрушено ли оно через некоторое время, ряд операций и т.д? Я имею в виду, в частности, файловые …


2
Почему wc <<< «$ string» показывает длину в один байт больше, чем printf «$ string» | Туалет?
Случайно я обнаружил, что wcзначение по-разному зависит от того, как он получает информацию от bash: $ s='hello' $ wc -m &lt;&lt;&lt;"$s" 6 $ wc -c &lt;&lt;&lt;"$s" 6 $ printf '%s' "$s" | wc -m 5 $ printf '%s' "$s" | wc -c 5 Это - ИМХО сбивает с толку - …

3
Запуск сценария оболочки, когда «/ bin / sh» указывает на «/ bin / bash»
Я прочитал следующее в этом вопросе : bash поддерживает ключ --posix, что делает его более совместимым с POSIX. Он также пытается имитировать POSIX, если вызывается как sh . Выше цитата предполагает, что /bin/shэто ссылка, на которую указывает /bin/bash. Но я не совсем понимаю, что подразумевается под словом «вызывается как sh» …
11 linux  bash  shell 

3
Как анализируются аргументы удаленной командной строки ssh
Я видел вопросы и ответы о необходимости двойного экранирования аргументов для удаленных команд ssh. Мой вопрос: где и когда будет выполнен второй разбор? Если я запускаю следующее: $ ssh otherhost pstree -a -p Я вижу следующее в выводе: |-sshd,3736 | `-sshd,1102 | `-sshd,1109 | `-pstree,1112 -a -p Родительский процесс для …
11 bash  shell  ssh  process  quoting 

3
В сценарии оболочки, как я могу (1) запустить команду в фоновом режиме (2) подождать x секунд (3) выполнить вторую команду во время выполнения этой команды?
Вот что мне нужно, чтобы это произошло: начать процесс А в фоновом режиме ждать х секунд начать процесс B на переднем плане Как я могу заставить ожидание случиться? Я вижу, что «сон», кажется, останавливает все, и я на самом деле не хочу «ждать», пока процесс А завершится полностью. Я видел …

3
Как отобразить пустые фигурные скобки JSON в качестве значения по умолчанию?
Похоже, я не могу получить пустой JSON, {}если отсутствует envvar. У меня либо есть трейлинг }на выходе, если он установлен, либо экранирование. bash-3.2$ unset X bash-3.2$ echo "${X:-{}}" {} bash-3.2$ X=y bash-3.2$ echo "${X:-{}}" y} bash-3.2$ echo "${X:-{\}}" y bash-3.2$ unset X bash-3.2$ echo "${X:-{\}}" {\} bash-3.2$ echo "${X:-'{}'}" '{}' …
11 bash  variable 

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