Вопросы с тегом «shell-script»

Вопросы о сценариях оболочки, исполняемых файлах, которые интерпретируются оболочкой (bash, zsh и т. Д.).

1
Как сделать сценарий оболочки, который отправляет вывод в процесс
В настоящее время я запускаю консольную программу на экране, потому что мне нужно и читать, и время от времени отправлять команды. Я хотел бы запустить приложение в качестве демона в фоновом режиме (запустить / остановить его с помощью init). Я мог tail -fбы записать в журнал, но это не позволит …

3
Shell Script: создание переменной с параметрами внутри
У меня есть команда rsync со следующими параметрами: rsync -avz --{partial,stats,delete,exclude=".*"} Я хочу поместить эти параметры в переменную, чтобы использовать ее после в скрипте. Что-то вроде этого: #!/bin/bash VAR=rsync -avz --{partial,stats,delete,exclude=".*"} $VAR /dir1 /dir2 Я пробовал с кавычками, одинарные кавычки, скобки, но безуспешно.

3
$ HOME / bin dir отсутствует в $ PATH
По моему у ~/.profileменя есть последний блок, который должен загрузить мои личные, bin/ directoryкак это: # set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi Но, похоже, не загружено: echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games Почему это не работает? (Моя оболочка bash.) …

3
BASH и поведение возврата каретки
У меня есть один быстрый вопрос. Это нормально, что bash (я использую 4.4.11) не отображает строки / текст, который отделен / заканчивается простым \r? Я был немного удивлен, увидев такое поведение: $ a=$(printf "hello\ragain\rgeorge\r\n") $ echo "$a" george Но текст «Привет снова» все еще там, как-то «спрятан»: $ echo "$a" …

2
Официальный стандарт / соглашение для расширения файла для сценариев оболочки к источнику
Мне было интересно, существует ли соглашение для расширений типов файлов для сценариев оболочки, которые вы хотите использовать вместо запуска. Например: Если я хочу запустить этот скрипт в подоболочке. ./script.sh Если я хочу не забыть запустить этот скрипт из текущей оболочки. . script.source Есть ли соглашение (например, POSIX) для типа файла …

2
Подсчитать количество элементов в массиве bash, где имя массива является динамическим (т.е. хранится в переменной)
Краткое изложение вопроса: Существует ли встроенный метод bash для подсчета количества элементов в массиве bash, где имя массива является динамическим (т.е. хранится в переменной), не прибегая к созданию полной копии массива или его использованию eval? Дополнительная информация: Используя подстановку параметров bash, можно сделать следующее: Определить длину массива: myArr=(A B C); …

4
Как мне отследить содержимое файлов, найденных с помощью команды find, в одном файле?
Мне удалось застрелиться там, где это больно (очень плохо), переформатировав раздел, содержащий ценные данные. Конечно, это не было преднамеренным, но это случилось. Однако мне удалось использовать testdiskи photorecвосстановить большую часть данных. Теперь у меня есть все эти данные, распределенные по почти 25 000 каталогов. Большинство файлов - это файлы .txt, …

4
Bash, как запустить некоторые фоновые процессы, но ждать других?
У меня есть (еще) другой wait, &, &&вопрос потока управления .. Скажем, у меня есть сценарий, похожий на этот, где я хочу выполнять как можно больше работы одновременно: # may take some hours something InputA > IrrelevantA & something InputB > IrrelevantB & # may take an hour ( somethingElse …

7
Будет ли $ 0 всегда включать путь к сценарию?
Я хочу использовать текущий скрипт, чтобы распечатать справку и информацию о версии из раздела комментариев вверху. Я думал о чем-то вроде этого: grep '^#h ' -- "$0" | sed -e 's/#h //' Но потом мне стало интересно, что произойдет, если скрипт находится в каталоге, который находится в PATH и вызывается …

1
косвенное расширение переменной в POSIX, как это сделано в Bash?
Возможно ли это, или есть какой-то элегантный способ взломать косвенное расширение переменных в POSIX, как это можно сделать в Bash? Для контекста я пытаюсь сделать следующее: for key in ${!map_*} do # do something done РЕДАКТИРОВАТЬ: Чтобы уточнить, я хотел бы получить доступ к переменным оболочки, которые начинаются с map_.

4
Ассоциативные массивы в скриптах оболочки
Я видел трюк для реализации ассоциативных массивов в сценарии оболочки. Например, print array["apples"]может быть написано, echo \$array$keyгде ключ = яблоки. Однако не было упоминания о том, как генерировать ключи для перебора массива. Единственный способ, которым я мог придумать, - хранить ключи в переменной, разделенной пробелами, чтобы я мог использовать цикл …

3
Условное присвоение на основе переменной среды
В скрипте bash я назначаю локальную переменную так, чтобы ее значение зависело от внешней глобальной переменной среды ( $MYAPP_ENV). if [ "$MYAPP_ENV" == "PROD" ] then SERVER_LOGIN=foobar123@prod.example.com else SERVER_LOGIN=foobar987@test.example.com fi Есть ли более короткий (но чистый) способ написать вышеупомянутое задание? (Предположительно, используя какой-то условный оператор / встроенный, если.)

5
Сценарий оболочки для отправки оповещения по почте, если использование диска превышает 90%
Я хочу реализовать скрипт на моем сервере, который будет автоматически отправлять оповещения по электронной почте, если использование диска превышает 90%, и второе оповещение по электронной почте, когда оно превышает 95%. Моя файловая система есть abc:/xyz/abcи точка монтирования есть /pqr. Я пробовал это: ADMIN="someone@def.com" ALERT=90 df -H | grep -vE 'abc:/xyz/pqr …


4
Скрипт Bash для обнаружения системы контроля версий путем тестирования статуса возврата команды
Я работаю над сценарием Bash, который я хотел бы работать для нескольких типов VCS. Я подумываю проверить, является ли каталог репозиторием для системы, выполнив типичную команду info и проверив код возврата, успех или ошибку. В псевдокоде: if a svn command succeded; Then run svn commands elif a darcs command succeded; …

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