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

61
Понимание «IFS = read -r line»

Я, очевидно, понимаю, что можно добавить значение к внутренней переменной разделителя полей. Например: $ IFS=blah $ echo "$IFS" blah $ Я также понимаю, что read -r lineбудет сохранять данные из stdinпеременной с именем line: $ read -r line <<< blah $ echo "$line" blah $ Однако, как команда...

60
Шебанг, начинающийся с `//`?

Я запутался в следующем скрипте ( hello.go). //usr/bin/env go run $0 $@ ; exit package main import "fmt" func main() { fmt.Printf("hello, world\n") } Это может выполнить. (на MacOS X 10.9.5) $ chmod +x hello.go $ ./hello.go hello, world Я не слышал о Шебанге, начиная с //. И это все еще работает,...

59
Зачем писать весь скрипт bash в функциях?

На работе я часто пишу сценарии bash. Мой руководитель предложил разбить весь сценарий на функции, как показано в следующем примере: #!/bin/bash # Configure variables declare_variables() { noun=geese count=three } # Announce something i_am_foo() { echo "I am foo" sleep 0.5 echo "hear me roar!" } #...

59
Разница между ls -l и ll?

Я относительно новичок в программировании в целом, и некоторые учебники говорили мне использовать ls -lдля просмотра файлов в каталоге, а другие говорили ll. Я знаю, что lsэто короткий список, но есть ли разница между двумя...

59
Получить путь к текущему сценарию при выполнении по символической ссылке

У меня есть утилита, состоящая из пары каталогов с некоторыми bash-скриптами и вспомогательными файлами, которые будут развернуты на нескольких машинах, возможно, в разных каталогах на каждой машине. Сценарии должны иметь возможность ссылаться на пути относительно себя, поэтому я должен иметь...

58
Какой стандарт для отступов в сценариях оболочки? [закрыто]

Сообщество Java использует 4 пробела в качестве единицы отступа. 1 сообщество Ruby использует 2 пространства, которые обычно согласованы. 2 Какой стандарт для отступов в сценариях оболочки? 2 или 4 пробела или 1...

55
Как определить и загрузить свою собственную функцию оболочки в Zsh

Мне трудно определить и запустить свои собственные функции оболочки в Zsh. Я следовал инструкциям на официальной документации и сначала попробовал простой пример, но мне не удалось это сделать. У меня есть папка: ~/.my_zsh_functions В этой папке у меня есть файл functions_1с rwxразрешениями...

55
Как я могу получить bash для выхода из-за сбоя обратной связи таким же образом, как pipefail?

Поэтому мне нравится укреплять свои bash-скрипты везде, где я могу (и когда не могу делегировать такие языки, как Python / Ruby), чтобы ошибки не остались без ошибок. В этом ключе у меня есть strict.sh, который содержит такие вещи, как: set -e set -u set -o pipefail И источник его в других...

55
Объединение двух переменных с подчеркиванием

Мне нужно объединить две переменные, чтобы создать имя файла с подчеркиванием. Позволяет вызвать мои переменные $FILENAMEи $EXTENSIONгде имя файла читается из файла. FILENAME=Hello EXTENSION=WORLD.txt В настоящее время... Я попробовал следующее без успеха: NAME=${FILENAME}_$EXTENSION...

54
Как сделать так, чтобы переменные среды «экспортировались» в скрипте оболочки?

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

54
Лучший способ следить за журналом и выполнять команду, когда в журнале появляется текст

У меня есть журнал сервера, который выводит определенную строку текста в свой файл журнала, когда сервер работает. Я хочу выполнить команду после запуска сервера и, следовательно, сделать что-то вроде следующего: tail -f /path/to/serverLog | grep "server is up" ...(now, e.g., wget on server)? Каков...

54
bash: проверить, установлен ли $ WORD

Я ищу в конструкции bash, чтобы решить, является ли переменная $WORDодним из определенных слов. Мне нужно что-то вроде этого: if "$WORD" in dog cat horse ; then echo yes else echo no fi у bash есть такая конструкция? Если нет, то что будет ближе...

54
Расщепление строки по первому вхождению разделителя

У меня есть строка в следующем формате id;some text here with possible ; inside и хочу разделить его на 2 строки по первому появлению ;. Итак, должно быть: idиsome text here with possible ; inside Я знаю, как разбить строку (например, с помощью cut -d ';' -f1), но она будет разбита на несколько...

52
Какой самый простой способ найти неиспользуемый локальный порт?

Какой самый простой способ найти неиспользуемый локальный порт? В настоящее время я использую что-то похожее на это: 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 Это кажется ужасно...

52
Выполнить команду перед выключением

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

52
Определение, является ли файл жесткой ссылкой или символической ссылкой?

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

50
Должен ли я заботиться о ненужных кошках?

Многие утилиты командной строки могут получать свои данные либо из канала, либо в качестве аргумента имени файла. Для длинных сценариев оболочки, я считаю, что начало цепочки с помощью catделает ее более читаемой, особенно если первая команда будет нуждаться в многострочных аргументах. сравнить sed...