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

Сценарии Bash - это создание сценариев на языке оболочки Bash.


8
Подавить трассировку выполнения команды echo?
Я запускаю сценарии оболочки от Jenkins, которые запускают сценарии оболочки с опциями shebang #!/bin/sh -ex. По словам Баш Шебанга для чайников? , -x«Заставляет оболочку напечатать трассировки выполнения», который отлично подходит для большинства целей - за исключением эху: echo "Message" производит вывод + echo "Message" Message что немного избыточно, и выглядит …

3
ZSH: Сбой команды чтения в bash-функции «read: 1: -p: no coprocess»
Редактировать: Кажется, работает внутри bash. Похоже, проблема связана с zsh. Если есть лучший сайт для публикации этой проблемы, дайте мне знать. Я пишу простой скрипт, который создает серию каталогов. Я хочу, чтобы пользователь дал подтверждение, прежде чем я это сделаю. Я использую следующее в качестве основы, но не могу заставить …

3
Как обновить bash на Mac OS X Yosemite
Просто пытаюсь немного изучить скрипты bash. Моя старая версия Bash: Bash version 3.2.53(1)-release... Я обновил мой bash на Mac OS X Yosemite с помощью homebrew: brew update brew install bash Затем в свойствах терминала я изменил стандартный путь оболочки с /bin/bashна /usr/local/bin/bash(насколько я понимаю, именно здесь homebrew устанавливает обновленный bash). …

2
Как я могу сравнить переменную с текстовой строкой, а не целым числом, в операторе if / else?
В процессе написания сценария оболочки я столкнулся с проблемой следующего оператора if / else, который находится где-то посередине сценария: if [ $act -eq "add" ] then read - "add or update: " $comm git commit -m "$comm $file" else git commit -m "$act $file" fi Возвращаемая ошибка: ./gitup: line 13: …

3
Передача двух аргументов в команду с использованием каналов
Обычно нам нужно передать только один аргумент: echo abc | cat echo abc | cat some_file - echo abc | cat - some_file Есть ли способ передать два аргумента? Что-то вроде {echo abc , echo xyz} | cat cat `echo abc` `echo xyz` Я мог бы сначала сохранить оба результата …

1
Bash: опционально передавая аргументы команде
Я пытаюсь добавить аргументы для вызова команды зависит от другой переменной. Пожалуйста, посмотрите код сценария оболочки: curl \ $([ -z "${title}" ] || echo --data-urlencode title=${title}) \ http://example.com В примере, если titleзадано не нуль, аргумент будет добавлен в curl. Это не работает правильно, если titleсодержит пробелы. Также я не смог …

4
Безопасно ли открывать файл, который пишется запущенным скриптом?
Я запускаю сценарий оболочки, который пишет в файл. Этот сценарий может занять много времени, и я хотел бы отслеживать частичный вывод, а не ждать завершения всего сценария. Безопасно ли открывать (двойной щелчок) файл, который записывается сценарием?

2
Написание сценариев оболочки, которые будут работать в любой оболочке (используя несколько строк shebang?)
Я только начал углубляться в создание сценариев оболочки, и я всегда просто бросал свой сценарий в файл, отмечал его, chmod +xа затем делал /path/to/script.shи позволял любому интерпретатору по умолчанию иметь с ним дело, которое, как я предполагал, было zsh, потому что это то, что Я использовал для моей раковины. По-видимому, …

2
Префикс к каждому выводу команды во время выполнения
Я пытаюсь сделать модульный скрипт. У меня есть несколько скриптов / команд, которые вызываются из одного скрипта. Я хочу префикс вывода каждой отдельной команды. нелогич-: Мои файлы: allcommands.sh / command1.sh / command2.sh выходы command1.sh file exists file moved выходы command2.sh file copied file emptied allcommands.sh запускает сценарии command1.sh и command2.sh …


2
Правильно экранирование косой черты в bash-скрипте для использования с sed
Я пытаюсь определить размер файлов, которые будут скопированы при синхронизации двух папок, запустив rsync в сухом режиме, а затем суммируя размеры файлов, перечисленных в выходных данных rsync. В настоящее время я застрял в префиксе файлов по их родительской папке. Я узнал, как префиксировать строки, используя sed, и как избежать использования …

1
Как переключить / изменить идентификатор пользователя в скрипте bash для выполнения команд в том же скрипте?
Есть ли способ переключить идентификацию пользователя в скрипте (выполняется как root как часть процесса установки), чтобы выполнить некоторые команды без вызова внешнего скрипта, а затем вернуться rootк выполнению других команд? Вроде, как бы, что-то вроде: #!/bin/bash some commands as root SWITCH_USER_TO user some commands as user including environment variables checks, …

5
Как обрезать файл по строкам?
У меня есть большое количество файлов, некоторые из которых очень длинные. Я хотел бы обрезать их до определенного размера, если они больше, удалив конец файла. Но я хочу только удалить целые строки. Как я могу это сделать? Это похоже на то, что будет обрабатываться инструментарием Linux, но я не знаю …

2
Как получить полный путь к целевой ссылке
Если у меня есть символическая ссылка, /var/opt/fooсозданная с ln -fs /path/to/target/dir foo. Как я могу в скрипт, который видит только ссылку получить /path/to/target/dir? То, чего я хочу достичь в сценарии, это rm -rf /path/to/target/dirдо того, как я это сделаю ln -fs /path/to/another/dir foo.

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