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

747
В Bash, как я могу проверить, начинается ли строка с некоторого значения?

Я хотел бы проверить, если строка начинается с "узла", например, "узел001". Что-то вроде if [ $HOST == user* ] then echo yes fi Как я могу сделать это правильно? Кроме того, мне нужно объединить выражения, чтобы проверить, является ли HOST "user1" или начинается с "node" if [ [[ $HOST == user1 ]]...

730
Как «grep» непрерывный поток?

Возможно ли использовать grepнепрерывный поток? Я имею в виду что-то вроде tail -f <file>команды, но с grepвыводом, чтобы сохранить только те строки, которые меня интересуют. Я пытался, tail -f <file> | grep patternно кажется, что grepможет быть выполнено только после tailокончания, то...

730
Извлечь подстроку в Bash

Учитывая имя файла в форме someletters_12345_moreleters.ext, я хочу извлечь 5 цифр и поместить их в переменную. Итак, чтобы подчеркнуть это, у меня есть имя файла с числом символов х, затем пятизначной последовательностью, окруженной одним подчеркиванием с обеих сторон, а затем другим набором из...

729
Проверьте количество аргументов, переданных скрипту Bash

Я хотел бы, чтобы мой сценарий Bash выводил сообщение об ошибке, если требуемый счетчик аргументов не выполняется. Я попробовал следующий код: #!/bin/bash echo Script name: $0 echo $# arguments if [$# -ne 1]; then echo "illegal number of parameters" fi По неизвестной причине я получил следующую...

718
В скрипте Bash, как я могу выйти из всего скрипта, если возникает определенное условие?

Я пишу сценарий на Bash для проверки кода. Тем не менее, кажется глупым запускать тесты, если компиляция кода не удалась, и в этом случае я просто прерву тесты. Есть ли способ, которым я могу сделать это, не оборачивая весь скрипт внутри цикла while и не используя разрывы? Что-то вроде Дун Дун Дун...

714
Что означает set -e в скрипте bash?

Я изучаю содержимое этого файла preinst, который скрипт выполняет перед тем, как этот пакет будет распакован из файла архива Debian (.deb). Скрипт имеет следующий код: #!/bin/bash set -e # Automatically added by dh_installinit if [ "$1" = install ]; then if [ -d /usr/share/MyApplicationName ]; then...

706
Как я могу приостановить свой сценарий оболочки на секунду, прежде чем продолжить?

Я только нашел, как ждать ввода пользователя. Однако я только хочу сделать паузу, чтобы while trueмой компьютер не зависал. Я пытался pause(1), но это говорит -bash: syntax error near unexpected token '1'. Как это можно...

690
Назначение значений по умолчанию для переменных оболочки с помощью одной команды в bash

У меня есть целая куча тестов на переменные в сценарии оболочки bash (3.00), где, если переменная не установлена, то она назначает значение по умолчанию, например: if [ -z "${VARIABLE}" ]; then FOO='default' else FOO=${VARIABLE} fi Кажется, я помню, что в одной строке есть некоторый синтаксис,...

678
Как удалить все файлы .pyc из проекта?

Я переименовал некоторые файлы в довольно большом проекте и хочу удалить файлы .pyc, которые они оставили. Я попробовал скрипт bash: rm -r *.pyc Но это не повторяется через папки, как я думал, что будет. Что я делаю...

659
Когда нам нужны фигурные скобки вокруг переменных оболочки?

В сценариях оболочки, когда мы используем {}при расширении переменных? Например, я видел следующее: var=10 # Declare variable echo "${var}" # One use of the variable echo "$var" # Another use of the variable Есть ли существенная разница или это просто стиль? Один предпочтительнее...

650
Найти и убить процесс в одной строке, используя bash и regex

Мне часто нужно убивать процесс во время программирования. То, как я делаю это сейчас: [~]$ ps aux | grep 'python csp_build.py' user 5124 1.0 0.3 214588 13852 pts/4 Sl+ 11:19 0:00 python csp_build.py user 5373 0.0 0.0 8096 960 pts/6 S+ 11:20 0:00 grep python csp_build.py [~]$ kill 5124 Как я могу...

641
Разбить строку на массив в Bash

В скрипте Bash я хотел бы разбить строку на части и сохранить их в массиве. Линия: Paris, France, Europe Я хотел бы иметь их в массиве, как это: array[0] = Paris array[1] = France array[2] = Europe Я хотел бы использовать простой код, скорость команды не имеет значения. Как мне это...

632
Как работает «cat << EOF» в bash?

Мне нужно было написать скрипт для ввода многострочного ввода в программу ( psql). После небольшого поиска я нашел следующий синтаксис: cat << EOF | psql ---params BEGIN; `pg_dump ----something` update table .... statement ...; END; EOF Это правильно создает многострочную строку (от BEGIN;до...