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

9
расширение оболочки (A | B) в именах файлов?

Можно ли расширить orвыбор в оболочке при чтении файла например. Под этим я подразумеваю, что, например, grepподдерживает синтаксис, подобный (A|B)совпадению A или B в файле. Точно так же, если у меня есть эти файлы: file1.txt file2.txt file3.txt file4.txt file5.txt Я мог бы сделать cat...

9
Удалить файлы без строки в имени

Я хочу удалить файлы, в имени которых нет строки '999' (без ''). Я пытался: grep -vlr 999 . | xargs -0 rm -f -- find . -print0 | grep --null-data -v 999 | xargs -0 rm -- Но ни один из них не работает. Я использую macOS Sierra, с bash:...

9
Найти строку, зная ее часть, и вернуть строку

У меня есть строка, например "Icecream123 AirplaneBCD CompanyTL1 ComputerYU1" Допустим, я знаю, что моя строка наверняка будет содержать подстроку IceCream, но я не знаю, что за ней следует. Это может быть 123, как в моем примере, или это может быть что-то другое. Хотя я могу использовать grep,...

9
Использовать read как подсказку внутри цикла while, управляемого read?

У меня есть случай использования, когда мне нужно читать несколько переменных в начале каждой итерации и читать входные данные пользователя в цикле. Возможные пути решения, которые я не знаю, как исследовать - Для назначения используйте другой дескриптор файла вместо стандартного ввода Используйте...

9
Инициализация переменных Bash - требуется, рекомендуется или определяется по мере продвижения

Есть ли преимущество / недостаток инициализации значения переменной bash в скрипте, либо перед основным кодом, либо перед локальными переменными в функции перед присвоением ей фактического значения? Мне нужно сделать что-то вроде этого: init() { name="" name=$1 } init "Mark" Есть ли риск того, что...

9
Напечатайте что-нибудь в консоли в том же месте, что и предыдущий эхо, с неким отрицательным эхом

В bash вы можете использовать команду с именем, clearчтобы очистить все экранные команды. И echoвы можете распечатать все, что вы хотите на экране .. В моих простых сценариях мне часто нужно печатать процент от того, что делается с моими командами .. Так что я мог бы сделать что-то вроде .. echo...

9
Построить команду динамически

Я работаю над сценарием, и мне нужно построить tarкоманду динамически. Вот два примера, чтобы проиллюстрировать, что я пытаюсь сделать: #!/bin/bash TAR_ME="/tmp" EXCLUDE=("/tmp/hello hello" "/tmp/systemd*" "/tmp/Temp*") _tar="tar "`printf -- '--exclude="%s" ' "${EXCLUDE[@]}"`" -zcf tmp.tar.gz" echo...

9
Bash сортировать массив по длине элементов?

Учитывая массив строк, я хотел бы отсортировать массив в соответствии с длиной каждого элемента. Например... array=( "tiny string" "the longest string in the list" "middle string" "medium string" "also a medium string" "short string" ) Должен сортировать в ... "the longest string in the list" "also...

9
bash: echo: ошибка записи: прерван системный вызов

Я хочу создать отсортированный список со всеми 8-значными числами - от 00000000 до 99999999. Я набрал в оболочке: f() { while IFS="" read -r line; do for i in {0..9}; do echo "$line$i"; done; done } echo | f | f | f | f | f | f | f | f | tee result.txt | wc -l ответ bash: echo: write error:...

9
Как напечатать строки, разделенные TAB в Bash?

Я пытаюсь напечатать две строки, разделенные вкладкой. Я пытался: echo -e 'foo\tbar' printf '%s\t%s\n' foo bar Они оба печатают: foo bar Где пробел между ними на самом деле 5 пробелов (согласно выбору вывода с помощью мыши в Putty). Я также пытался использовать CTRL + V и нажимать клавишу TAB при...

9
«Вариабилизация» амперсанда (фоновый процесс)

Я хочу знать, есть ли способ поместить амперсанд в переменную и по-прежнему использовать его для отправки процесса в фоновый режим. Это работает: BCKGRND=yes if [ "$BCKGRND" = "yes" ]; then sleep 5 & else sleep 5 fi Но разве не здорово было бы выполнить эти пять строк одной? Вот так:...

9
Почему тильда (~) не раскрывается при использовании с аргументом CLI, начинающимся с тире?

Я потерял пару часов, пытаясь запустить сервер VNC (x0vncserver), и клиент отказался подключиться со странным сообщением, которое No password configured for VNC Auth Сервер также печатает эту ошибку SVncAuth: opening password file '~/.vnc/passwd' failed Хорошо, я потратил много времени, пока не...

9
Как я могу предотвратить появление неподдерживаемых опций 'shopt' в моем .bashrc?

Я работаю в относительно гетерогенной среде, где я могу использовать разные версии Bash на разных узлах HPC, виртуальных машинах или моей личной рабочей станции. Поскольку я помещаю свои сценарии входа в Git-репозиторий, я хотел бы использовать один и тот же (ish) .bashrcпо всем направлениям, без...

9
Передать ассоциативный массив как список параметров в скрипт

В скрипте у меня есть ассоциативный массив, как: declare -A VARS=( ["key1"]="value1" ["key2"]="value" ) Есть ли одна команда, чтобы преобразовать это в список параметров в форме --key1=value1 --key2=value2 без необходимости переписывать вручную --key1="${VARS[key1]}" --key2="${VARS[key2]}" вариант...

9
Добавить последнюю строку стандартного ввода ко всему стандартному вводу

Рассмотрим этот скрипт: tmpfile=$(mktemp) cat <<EOS > "$tmpfile" line 1 line 2 line 3 EOS cat <(tail -1 "$tmpfile") "$tmpfile" Это работает и выводит: line 3 line 1 line 2 line 3 Допустим, что наш источник ввода, а не фактический файл, был вместо этого stdin: cat <<EOS | # what...

9
Настройка параметров bash в составной команде

Я обнаружил, что установка параметра extglobоболочки в составном соединении приводит к отказу последующих антиглобов. Должны ли параметры оболочки быть установлены вне составных команд? Я не видел указаний на такое требование в справочных страницах bash. Как пример, следующий скрипт работает...