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

12
Как я могу развернуть тильду ~ как часть переменной?

Когда я открываю приглашение bash и набираю: $ set -o xtrace $ x='~/someDirectory' + x='~/someDirectory' $ echo $x + echo '~/someDirectory' ~/someDirectory Я надеялся, что 5-я строка выше пошла бы + echo /home/myUsername/someDirectory. Есть ли способ сделать это? В моем исходном скрипте Bash...

12
Почему мой скрипт с именем «killl» не работает, но после переименования работает отлично?

Рассматриваемый скрипт завершает последний процесс на моем локальном порте 8080. #!/bin/bash x=$(lsof -i:8080 | tail -1 | awk '{print $2}') kill -9 $x Это не сработало, если сценарий был назван «killl» (получите? Kill Latest?). Это дало мне подсказку для cmdsubst> переименования скрипта в...

12
Как я могу создать арифметический цикл в сценарии оболочки POSIX?

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

12
Слишком много строк shebang (объявление скрипта) - есть ли способ уменьшить их количество?

У меня есть проект, состоящий из около 20 небольших .shфайлов. Я называю их «маленькими», потому что обычно ни один файл не содержит более 20 строк кода. Я выбрал модульный подход, потому что, таким образом, я верен философии Unix, и мне легче поддерживать проект. В начале каждого .shфайла я ставлю...

12
Почему не используется несколько команд с || или && условная работа?

Это работает в командной строке (bash, dash): [ -z "" ] && echo A || echo B A Тем не менее, я пытаюсь написать сценарий оболочки POSIX , он начинается так: #!/bin/sh [ "${#}" -eq 1 ] || echo "Invalid number of arguments, expected one."; exit 1 readonly raw_input_string=${1} [ -z...

12
Как заставить конвейер ждать окончания файла или останавливаться после ошибки?

Я попробовал следующую команду после просмотра этого видео на трубе махинаций. man -k . | dmenu -l 20 | awk '{print $1}' | xargs -r man -Tpdf | zathura - Он в основном выводит список man-страниц в dmenu, чтобы пользователь мог выбрать один из них, затем использует xargs для запуска man -Tpdf...

12
Параметризация связанных вызовов утилиты в Bash

У меня есть UNIX-программа черного ящика, используемая в оболочке Bash, которая читает столбцы данных из stdin, обрабатывает их (применяя эффект сглаживания), а затем выводит в stdout. Я использую его по каналам UNIX, как generate | smooth | plot Для большего сглаживания я могу повторить...

11
Скрипт Bash для обнаружения системы контроля версий путем тестирования статуса возврата команды

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

11
Как сделать сценарий оболочки, который отправляет вывод в процесс

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

11
дата - годы до 1901 года считаются недействительными

У меня дата (GNU coreutils) 7.1 установлена ​​в моей системе. Если я пытаюсь проверить даты до 14 декабря 1901 года, я получаю ошибку «неверная дата». Например, $ date -d 1901-12-13 date: invalid date `1901-12-13' $ date -d 1901-12-14 Sat Dec 14 00:00:00 EST 1901 Что я должен сделать, чтобы...

11
Трубопровод для вывода цикла предотвращает модификацию локальной переменной

Я пытаюсь написать простую функцию bash, которая принимает в качестве аргументов несколько файлов и / или каталогов. Должно: Полностью уточните имена файлов. Сортировать их. Удалить дубликаты. Распечатайте все, что на самом деле существует. Вернуть количество несуществующих файлов. У меня есть...

11
Как написать bash-скрипт, который входит в систему на другом компьютере, чтобы что-то делать?

Можно ли написать сценарий Bash, что будет запущен с машины A, войдет в систему на другой машине B с помощью ssh (обе машины A и B будут Linux-машинами), копирует некоторые файлы на компьютер B запускает скрипт Python для данного компьютера на данном компьютере. передает результаты обратно на...

11
автоматизировать построение gnuplot с помощью bash

У меня есть 6 файлов, которые нужно построить в виде линейных графиков с полями ошибок и вывести их в разные файлы PNG. Формат файла следующий. секунды среднее среднее мин макс Как бы я начал строить эти графики автоматически? Поэтому я запускаю файл с именем bash.sh, и он получит 6 файлов и...

11
назначить сочетание клавиш для запуска скрипта

Я написал скрипт для изменения яркости моего экрана. Это полезно, когда я работаю в текстовом режиме, а горячие клавиши на клавиатуре для изменения яркости не работают. Можно ли запустить этот скрипт, просто нажав несколько клавиш на клавиатуре в качестве ярлыка, например Ctrl+ Alt+...

11
Почему я не могу убить тайм-аут, вызванный из скрипта Bash, нажатием клавиши?

[Редактировать: это похоже на некоторые другие вопросы, спрашивающие, как убить все порожденные процессы - ответы, похоже, используют pkill. Таким образом, суть моего вопроса может заключаться в следующем: есть ли способ распространения Ctrl-C / Z на все процессы, созданные скриптом?] При вызове...

11
Скрипт Bash, который автоматически убивает процессы, когда загрузка ЦП / памяти становится слишком высокой

Я создал скрипт, который убивает процессы, если загрузка процессора и / или памяти достигает 80%. Он создает список убитых процессов, когда это происходит. Что я могу сделать, чтобы улучшить это? while [ 1 ]; do echo echo checking for run-away process ... CPU_USAGE=$(uptime | cut -d"," -f4 | cut...

11
Сценарий оболочки для отправки оповещения по почте, если использование диска превышает 90%

Я хочу реализовать скрипт на моем сервере, который будет автоматически отправлять оповещения по электронной почте, если использование диска превышает 90%, и второе оповещение по электронной почте, когда оно превышает 95%. Моя файловая система есть abc:/xyz/abcи точка монтирования есть /pqr. Я...

11
Условное присвоение на основе переменной среды

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

11
Скрипт для извлечения выбранных записей из файла bibtex

У меня есть большой файл bibtex со многими записями, где каждая запись имеет общую структуру @ARTICLE{AuthorYear, item = {...}, item = {...}, item = {...}, etc } (в некоторых случаях это ARTICLEможет быть другое слово, например BOOK) То, что я хотел бы сделать, это написать простой сценарий...