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

13
Bash скрипт ждет процессов и получает код возврата

Я пытаюсь создать скрипт, который запустит много фоновых команд. Для каждой фоновой команды мне нужно получить код возврата. Я пробовал следующий скрипт: #!/bin/bash set -x pid=() return=() for i in 1 2 do echo start $i ssh mysql "/root/test$i.sh" & pid[$i]=$! done for i in ${#pid[@]} do echo...

13
$ {! FOO} и zsh

${!FOO}выполняет двойную подстановку bash, то есть принимает (строковое) значение FOO и использует его в качестве имени переменной. zshне поддерживает эту функцию. Есть ли способ сделать эту работу такой же в bashи zsh? Фон: У меня есть список переменных среды, как PATH MAIL EDITOR и хотите сначала...

13
Удалить весь аргумент в текущей командной строке bash

Используя ^W(unix-word-rubout), я могу легко удалить одно «слово» из текущей команды в моей оболочке bash. Однако при работе с аргументами в кавычках, которые содержат пробелы (или аргументы без кавычек, содержащие пробелы с обратной косой чертой), это работает не очень хорошо, так как удаляет...

13
Как вызвать ошибку с помощью команды Trap

Я использую Ubuntu 12.04.2. Я пытаюсь использовать команду «trap», чтобы зафиксировать ненормальное или ошибку в моем сценарии оболочки, но я также пытаюсь вручную вызвать выход «Error». Я попытался выйти 1, но он не вызовет сигнал «Ошибка». #!/bin/bash func() { exit 1 } trap "echo hi" INT TERM ERR...

13
Как запустить команду для нескольких файлов

Это довольно просто, у меня есть папка с несколькими подпапками файлов JS, и я хочу запустить компилятор Google Clojure для всех файлов в этих папках. Команда для обработки одного файла выглядит следующим образом: java -jar compiler.jar --js filename.js --js_output_file newfilename.js Как я могу...

13
Как предотвратить внедрение команд через параметры команды?

У меня есть приложение-обертка, где мне нужно разрешить пользователю указывать пользовательские параметры для передачи в симулятор. Однако я хочу убедиться, что пользователь не вводит другие команды через пользовательские опции. Какой лучший способ сделать это? Например. Пользователь предоставляет:...

13
ssh-agent не настроен (SSH_AUTH_SOCK, SSH_AGENT_PID env vars не установлены)

Я создал новую учетную запись для друга на Kubuntu 12.04. Когда он использует, sshон получает эту ошибку: Не удалось открыть соединение с вашим агентом аутентификации Мы работаем над sshнекоторыми скриптами bash. Посмотрев вокруг множества вещей, которые могут привести к этой ошибке, я наткнулся на...

13
Могу ли я получить противоположность `diff -q` - сопоставление идентичных файлов без печати их содержимого

У меня есть несколько файлов в каталоге, и я хочу проверить, все ли они уникальны. Для простоты предположим, что у меня есть три файла: foo.txt, bar.txtи baz.txt. Если я запустите этот цикл, я проверю их все друг против друга: $ for f in ./*; do for i in ./*; do diff -q "$f" "$i"; done; done Files...

13
Автозаполнение новейшего файла

У меня есть процесс, который создает текстовые файлы, имена файлов которых основаны на отметке времени их создания: $ ls 1378971222.txt 1378971254.txt 1378971482.txt 1378971488.txt 1378972089.txt 1378972140.txt 1378972141.txt 1378972153.txt 1378972155.txt 1378972241.txt Как я могу автоматически...

13
Можно ли привязать встроенные команды к Bash?

Вдохновленный этим вопросом под названием « Когда встроенные команды загружаются в память , я пытался ответить на него , пытаясь выполнить следующую команду, и был немного удивлен, что не смог ее запустить: $ strace cd $HOME Есть ли способ, который я могу использовать для запуска strace для...

13
Регулярное выражение в скрипте bash

Это мой первый раз, когда я использую bash-скрипты, поэтому я, вероятно, делаю легкую ошибку. По сути, я пытаюсь написать сценарий, который получает группы пользователей, и, если они находятся в определенной группе, он будет регистрировать это соответствующим образом. Очевидно, будет больше...

13
Рекурсивно добавить файл во все подкаталоги

Как я могу рекурсивно добавить (или коснуться) файл в текущий каталог, а также во все его подкаталоги? Например, я хотел бы включить это дерево каталогов: . ├── 1 │   ├── A │   └── B ├── 2 │   └── A └── 3 ├── A └── B └── I 9 directories, 0 files в . ├── 1 │   ├── A │   │   └── file │   ├── B │  ...

13
Как мне перенаправить только stderr?

У меня немного проблем с этим. Мне нужно запустить скомпилированный файл .java и перенаправить только stderr в файл с именем error. Таким образом, файл .java называется javaProgram.java. Вот что я попробовал: java javaProgram 2> error Однако когда я cat error кажется, что там есть вещи, даже...

13
Как явно вызвать встроенную оболочку?

Я хочу настроить функциональность cdкоманды в соответствии с моими потребностями. Я определил следующую функцию - function cd () { cd "$@" && pushd "$@"; } Цель этой функции - автоматически поместить каталог в стек, чтобы сэкономить время, необходимое для ввода вручную pushd .каждый раз....

13
Как включить команды в PS1 Bash без расчёта длины строки?

Тонин указал на ошибку в моей подсказке по умолчанию . Минимальный пример: Установите PS1: PS1='$(exit_code=$?; [[ $exit_code -eq 0 ]] || printf %s $(tput setaf 1) $exit_code $(tput sgr0) " ")$ ' На этом этапе подсказка выглядит так: $ Теперь запустите вывод кода выхода, выполнив: false Теперь...

13
find: prune не игнорирует указанный путь

Мне нужно исключить .gitиз моего findпоиска. Чтобы добиться этого, я использую -path ./.git -pruneпереключатель: $ find . -path ./.git -prune -o \( -type f -o -type l -o -type d \) | grep '.git' ./.git Однако, хотя при этом пропускается содержимое каталога .git, в нем указывается сам каталог....

13
надежный код возврата фонового процесса

Давайте предположим следующий фрагмент кода bash: foo > logfile 2>&1 & foo_pid=$! while ps -p$foo_pid do ping -c 1 localhost done wait $foo_pid if [[ $? == 0 ]] then echo "foo success" fi Можно ли предположить, что $?действительно содержит код возврата, fooа не код возврата ping? Если...