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

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

5
Как остановить wget после того, как он получит 404?
Если вы используете расширение скобок с помощью wget, вы можете легко получать изображения с последовательными номерами: $ wget 'http://www.iqandreas.com/sample-images/100-100-color/'{90..110}'.jpg' Он извлекает первые 10 файлов , пронумерованных 90.jpgв 99.jpgтолько штраф, но 100.jpgи далее возвращает 404: Файл не найдено ошибку ( у меня только 100 изображений , хранящихся на сервере). Эти несуществующие …

3
Запретите автоматические EOF в именованный канал и отправьте EOF, когда я этого захочу
У меня есть программа, которая автоматически выходит при чтении EOF в данном потоке (в следующем случае, stdin). Теперь я хочу создать сценарий оболочки, который создает именованный канал и подключает к нему stdin программы. Затем скрипт записывает в канал несколько раз, используя echoи cat(и другие инструменты, которые автоматически генерируют EOF при …

10
Удалить все повторяющиеся слова из строки, используя скрипт
У меня есть строка как "aaa,aaa,aaa,bbb,bbb,ccc,bbb,ccc" Я хочу удалить повторяющееся слово из строки, тогда вывод будет "aaa,bbb,ccc" Я попробовал этот код Source $ echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs Он работает нормально с тем же значением, но когда я даю …

4
Можно ли изменить файл yml через скрипт оболочки?
Вот так выглядит мой docker-compose.yml. nginx: container_name: 'nginx' image: 'nginx:1.11' restart: 'always' ports: - '80:80' - '443:443' volumes: - '/opt/nginx/conf.d:/etc/nginx/conf.d:ro' links: - 'anything' Теперь мне нужно добавить контент через скрипт оболочки (на сервере Ubuntu). Я не совсем уверен, возможно ли это вообще: Добавить новый элемент nginx/links, если он не существует …

3
Как настроить скрипт для выполнения, когда порт получает сообщение
Мне интересно, как получить сценарий оболочки для прослушивания на определенном порту (может быть, с помощью netcat?). Надеюсь, что когда сообщение отправляется на этот порт, сценарий записывает сообщение, а затем запускает функцию. Пример: Компьютер 1 имеет скрипт, работающий в фоновом режиме, скрипт открывает порт 1234 для входящего трафика Компьютер 2 отправляет …


2
Проверка поддержки массивов оболочкой
Существует ли краткий способ проверки поддержки массивов локальной Bourne-подобной оболочкой в ​​командной строке? Это всегда возможно: $ arr=(0 1 2 3);if [ "${arr[2]}" != 2 ];then echo "No array support";fi или тестирование $SHELLи версия оболочки: $ eval $(echo "$SHELL --version") | grep version и затем читая справочную страницу, предполагая, что …


2
Как я могу проверить, сделал ли rsync какие-либо изменения в bash?
У меня есть скрипт, который использует rsync для синхронизации данных в удаленном -> локальном сценарии. Сразу после запуска команды rsync проверьте, равен ли код ошибки нулю или нет. Если его ноль, дальнейшие команды выполняются. Это, однако, не учитывает тот факт, что rsync мог успешно работать, но не вносил никаких изменений. …

5
Найти файлы новее дня и скопировать
Я работаю над сценарием, который будет копировать ТОЛЬКО файлы, созданные за последний выходной день, в другую папку. У меня проблема в том, что у меня есть скрипт, который копирует все файлы в исходном каталоге, а не только файлы, которым меньше одного дня. Вот что у меня есть: find . -mtime …

3
Можно ли использовать скобки (перестановку) и расширение массива одновременно?
{}Синтаксис расширения скобок Bash позволяет создавать простые перестановки # echo {b,c,d}{a,e,i,o,u} ba be bi bo bu ca ce ci co cu da de di do du Однако мне не ясно, если / как можно использовать это вместе с массивами, за исключением очень неудобного использования $() echoиeval Есть ли простой способ …


2
Запустите команды параллельно и дождитесь завершения одной группы команд, прежде чем начинать следующую
У меня есть сценарий, включающий несколько команд. Как я могу сгруппировать команды для запуска вместе (я хочу сделать несколько групп команд. Внутри каждой группы команды должны выполняться параллельно (одновременно). Группы должны запускаться последовательно, ожидая завершения одной группы перед запуском команды. следующая группа) ... т.е. #!/bin/bash command #1 command #2 command …

3
Выход из функции bash, а не терминала
У меня есть скрипт bash, как показано ниже, который устанавливает zookeeper, но только если он еще не установлен. ##zookeper installZook(){ ZOOK_VERSION="3.4.5" ZOOK_TOOL="zookeeper-${ZOOK_VERSION}" ZOOK_DOWNLOAD_URL="http://www.us.apache.org/dist/zookeeper/${ZOOK_TOOL}/${ZOOK_TOOL}.tar.gz" if [ -e $DEFAULT_INSTALLATION_DEST/${ZOOK_TOOL} ]; then echo "${ZOOK_TOOL} alreay installed"; exit 1; # <<<< here elif [ ! -e $DEFAULT_SOURCE_ROOT/${ZOOK_TOOL}.tar.gz ]; then wgetIt $ZOOK_DOWNLOAD_URL else echo "[info] …

2
Как я могу создать арифметический цикл в сценарии оболочки POSIX?
Я знаю, как создать арифметический forцикл в bash. Как сделать эквивалентный цикл в сценарии оболочки POSIX? Поскольку существуют разные способы достижения одной и той же цели, не стесняйтесь добавлять свой собственный ответ и немного рассказать о том, как он работает. Ниже приведен пример одного такого bashцикла: #!/bin/bash for (( i=1; …

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