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

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

3
Как сделать так, чтобы переменные среды «экспортировались» в скрипте оболочки?
У меня есть несколько учетных записей Amazon EC2 и я хочу быстро переключаться между переменными, например $EC2_HOME, с помощью сценария. У меня есть сценарий оболочки, настроенный так: #!/bin/sh export EC2_HOME=/home/me/.ec2 echo $EC2_HOME Когда я запускаю скрипт, я знаю, что EC2_HOMEон установлен, но я подумал, что использование exportзаставит переменную остаться после …

4
Выполнить команду перед выключением
Я хочу выполнить простую команду как раз перед тем, как компьютер выключится (время не имеет значения). Для запуска я могу использовать /etc/rc.local; Есть ли что-то подобное для выключения? Обратите внимание, что я все еще хотел бы использовать встроенную кнопку выключения из меню; то есть я не хочу использовать собственный скрипт …

14
Какой самый простой способ найти неиспользуемый локальный порт?
Какой самый простой способ найти неиспользуемый локальный порт? В настоящее время я использую что-то похожее на это: port=$RANDOM quit=0 while [ "$quit" -ne 1 ]; do netstat -a | grep $port >> /dev/null if [ $? -gt 0 ]; then quit=1 else port=`expr $port + 1` fi done Это кажется …

5
Определение, является ли файл жесткой ссылкой или символической ссылкой?
Я создаю сценарий оболочки, который берет имя файла / путь к файлу и определяет, является ли файл символической ссылкой или жесткой ссылкой. Единственное, я не знаю, как узнать, являются ли они жесткой связью. Я создал 2 файла, один из которых является жесткой ссылкой, а другой - символической ссылкой для использования …

4
Должен ли я заботиться о ненужных кошках?
Многие утилиты командной строки могут получать свои данные либо из канала, либо в качестве аргумента имени файла. Для длинных сценариев оболочки, я считаю, что начало цепочки с помощью catделает ее более читаемой, особенно если первая команда будет нуждаться в многострочных аргументах. сравнить sed s/bla/blaha/ data \ | grep blah \ …

5
Как выйти из скрипта в условном выражении?
Я пишу сценарий Bash, где я хочу выйти, если пользователь не root. Условно работает нормально, но скрипт не выходит. [[ `id -u` == 0 ]] || (echo "Must be root to run script"; exit) Я пытался использовать &&вместо, ;но ни одна из них не работает.

1
В чем разница между кавычками «…», «…», $ «…» и $ «…»?
Иногда я вижу сценарии использовать все эти различные способы процитировать текст: "...", '...', $'...', и $"...". Почему используется так много разных цитат? Они ведут себя по-разному или влияют на то, что я могу сделать внутри них?

2
подавить сообщения stderr в скрипте bash
Рассмотрим следующее (слегка глупое) имя сценария 'test1.sh': #/bin/bash # sleep 10 & echo sleep pid = $! pkill sleep Когда я запускаю его, я получаю не только вывод echo, но и сообщение bash о смерти сна на stderr: $ ./test1.sh sleep pid = 3551 ./test1.sh: line 5: 3551 Terminated sleep …

4
Как я могу полностью удалить элемент из массива?
unset array[0]удаляет элемент, но все же, если я это сделаю, echo ${array[0]}я получаю нулевое значение, более того, есть другие способы сделать это, но если элемент массива содержит пробелы, как показано ниже array[0]='james young' array[1]='mary' array[2]='randy orton' но они также не в состоянии сделать работу array=${array[@]:1} #removed the 1st element теперь …



7
Как я могу защитить bash-скрипты от нанесения вреда при их изменении в будущем?
Итак, я удалил свою домашнюю папку (или, точнее, все файлы, к которым у меня был доступ для записи). Что случилось то, что у меня было build="build" ... rm -rf "${build}/"* ... <do other things with $build> в bash-скрипте и, после того, как больше не нужно $build, удалить объявление и все …
46 bash  shell-script  rm 

3
Поиск правильного каталога TMP на нескольких платформах
У меня есть скрипт, который должен создавать временные файлы для своей работы и очищать после себя. Мой вопрос о том, чтобы найти правильный базовый каталог для временных файлов. Скрипт должен работать на нескольких платформах: Git Bash (Windows), Solaris, Linux, OSX. На каждой платформе предпочтительный временный каталог выражается по-разному: Windows: %TMP%(и …

13
Что такое быстрый способ командной строки для переключения между несколькими каталогами для системного администрирования?
Что такое быстрый способ командной строки для переключения между несколькими каталогами для системного администрирования? Я имею в виду, что я могу использовать pushd .и popdдля переключения, но что если я захочу хранить кратные числа и циклически их перебирать, вместо того, чтобы постоянно выталкивать их из нижней части стека?

8
Почему обязательные утилиты POSIX не встроены в оболочку?
Цель этого вопроса - ответить на любопытство, а не решить конкретную вычислительную проблему. Вопрос заключается в следующем: почему обязательные утилиты POSIX обычно не встроены в реализации оболочки? Например, у меня есть сценарий, который в основном считывает несколько небольших текстовых файлов и проверяет, правильно ли они отформатированы, но для запуска на …

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