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

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

3
Как определить функцию Bash, которая может использоваться различными скриптами
Я определил bashфункцию в моем ~/.bashrcфайле. Это позволяет мне использовать его в терминалах оболочки. Однако, кажется, что он не существует, когда я вызываю его из скрипта. Как я могу определить bashфункцию, которая будет использоваться скриптами?

4
Как выполнить подстановку sed на месте, которая создает только резервные копии файлов, которые были изменены?
Я запустил следующее, чтобы заменить термин, используемый во всех файлах в текущем рабочем каталоге: $ find . -type f -print0 | xargs -0 sed -i'.bup' -e's/Ms. Johnson/Mrs. Melbin/g' Это выполняло подстановку слова, но также создавало .bupфайлы файлов, которые никогда не имели Ms. Johnsonстроки. Как выполнить замену, не создавая все эти …

3
Когда `ls -s` выводит« 0 »
Конечно, стандартным способом проверки, если файл пуст, является test -s FILEодин, но один из наших клиентов получил скрипт, содержащий такие тесты: RETVAL=`ls -s ./log/cr_trig.log | awk '{print $1}'` if test $RETVAL -ne 0 then echo "Badness: Log not empty" exit 25 fi с заявлениями поставщика о том, что он работает …

2
Как безопасно передавать переменные в сценарии с поддержкой root?
Этот вопрос носит общий характер и применим не только к моей ситуации, но ... У меня есть небольшое устройство busybox, где я хочу, чтобы пользователь без полномочий root мог выполнять определенный сценарий с привилегиями пользователя root. Например, что-то вроде этого небольшого скрипта для включения DHCP, где единственная переменная ( $1) …


2
Как получить имя блочного устройства из имени устройства раздела?
Я ищу портативный способ получить имя устройства родительского блока (например /dev/sda), учитывая имя устройства раздела (например /dev/sda1). Я знаю, что могу просто выбросить последний символ, но в некоторых случаях это не сработает: Кард-ридеры MMC обычно имеют имена вроде /dev/mmcblk0, в то время как их разделы имеют имена как /dev/mmcblk0p1(обратите внимание …

1
Как активировать Virtualenv при запуске скрипта Python?
Я хочу запланировать запуск сценария python с использованием cron на определенные даты, проблема в том, что для того, example.pyчтобы он работал, example-envнужно ли его активировать, есть ли способ заставить example.pyего активировать свою собственную virtualenv всякий раз, когда cron выполняет его? если нет, то я должен создать скрипт bash, bash.shкоторый содержит …

1
Почему PGID моего дочернего процесса не является PID родителя?
Поэтому я постоянно читаю, что эта команда должна завершать все дочерние процессы родительского процесса: kill -- -$$ Использование отрицательного идентификатора с командой kill ссылается на PGID, и из примеров, которые я видел, выясняется, что PGID дочерних процессов должен быть PID родительского процесса, но это не так в моей системе. В …

2
связь между несколькими процессами
У меня есть скрипт bash, который запускает функцию manager () как отдельный процесс для x-times. Как можно пересылать сообщения всем процессам manager () из скрипта? Я читал об анонимных каналах, но понятия не имею, как поделиться с ним сообщениями. Я пытался сделать это с именованными каналами, но, похоже, мне придется …

5
Как мне удалить привилегии root в скриптах оболочки?
Параметр «--up» в OpenVPN обычно используется для маршрутизации и т. Д. И поэтому он обрабатывается до того, как OpenVPN отбрасывает привилегии root для запуска как никто. Тем не менее, я вызываю сценарии оболочки, которые должны запускаться как непривилегированный пользователь. Как мне это сделать? Я изучил привилегии Drop Process , особенно …

2
Проверьте зависимости скриптов bash / shell
Есть ли метод / команда для проверки зависимостей bash-скрипта? Другими словами, ответ на этот вопрос: какие библиотеки должен установить пользователь для запуска сценария? Я могу сделать это вручную, читая скрипт и проверяя, какие другие библиотеки / команды он вызывает, но это не очевидно для длинных скриптов.

3
надежный код возврата фонового процесса
Давайте предположим следующий фрагмент кода 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? Если ответ на …


9
Добавление двух чисел с помощью expr
Я изучаю сценарии Shell для получения диплома в области ИТ, которым я сейчас занимаюсь. Я пытаюсь написать небольшой скрипт, который добавляет два числа, как показано в одном из учебных пособий, которые нам дали. echo "Enter two numbers" read num1 num2 sum = 'expr $num1 + $num2' echo "The sum is …

8
Как настроить Mutt для отображения заголовка даты в моем местном часовом поясе в пейджере?
Когда я просматриваю сообщение в пейджере Mutt, отображается время в заголовке даты в формате UTC, а не мой местный часовой пояс. В индексном представлении отображается местное время правильно. Я нашел этот старый пост в списке рассылки, который описывает, как заставить отображать местное время в строке состояния в нижней части экрана, …

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