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

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

29
ZSH: Сбой команды чтения в bash-функции «read: 1: -p: no coprocess»

Редактировать: Кажется, работает внутри bash. Похоже, проблема связана с zsh. Если есть лучший сайт для публикации этой проблемы, дайте мне знать. Я пишу простой скрипт, который создает серию каталогов. Я хочу, чтобы пользователь дал подтверждение, прежде чем я это сделаю. Я использую следующее в...

29
Подавить трассировку выполнения команды echo?

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

25
Как обновить 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на...

24
Как я могу сравнить переменную с текстовой строкой, а не целым числом, в операторе 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...

22
Передача двух аргументов в команду с использованием каналов

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

21
Bash: опционально передавая аргументы команде

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

20
Безопасно ли открывать файл, который пишется запущенным скриптом?

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

19
Написание сценариев оболочки, которые будут работать в любой оболочке (используя несколько строк shebang?)

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

16
Префикс к каждому выводу команды во время выполнения

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

14
Как переключить / изменить идентификатор пользователя в скрипте bash для выполнения команд в том же скрипте?

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

14
Правильно экранирование косой черты в bash-скрипте для использования с sed

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

13
Как обрезать файл по строкам?

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

13
Как получить полный путь к целевой ссылке

Если у меня есть символическая ссылка, /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...

12
завершение bash для шаблонов имен файлов или каталогов

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

12
Разница при использовании обратных кавычек в двойных кавычках и одинарных кавычек в Bash

Почему следующие два исполнения отличаются по выводу? (Мне нужны двойные кавычки для переменных в моей возможной команде) $ sudo su -c "echo `cat /root/root_file`" cat: /root/root_file: Permission denied $ sudo su -c 'echo `cat /root/root_file`' Yay, highly classified...

12
почему цикл bash while не завершается при передаче по завершенной подкоманде?

Почему команда ниже не выходит? Вместо выхода цикл работает бесконечно. В то время как я обнаружил это поведение с помощью более сложной настройки, простейшая форма команды сводится к следующему. Не выходит: while /usr/bin/true ; do echo "ok" | cat ; done | exit 1 Там нет опечаток выше. Каждый '|'...

9
Автоматизированное взаимодействие с Google Chrome

Ладно, СУ, у меня есть забавный орешек. У меня есть 8 экранов, установленных в линию, и все они подключены к одному мощному G5 под управлением Snow Leopard (да, 4 видеокарты; шириной около 15 000 пикселей!). Я настраиваю демонстрацию, которая использует 8 полноэкранных окон браузера Chrome, каждое...