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

62
Какие функции есть в zsh и отсутствуют в bash или наоборот?

Как пользователь Linux, я всегда использовал bash, потому что он использовался по умолчанию в каждом дистрибутиве, который я использовал. Люди, использующие другие системы Unix, такие как BSD, используют другие оболочки гораздо чаще. Чтобы узнать немного больше, я решил попробовать Zsh. Как...

62
Не может сделать отступ heredoc, чтобы соответствовать отступу вложенности

Если есть «Проблемы Первого Мира» для сценариев, это было бы так. У меня есть следующий код в скрипте, который я обновляю: if [ $diffLines -eq 1 ]; then dateLastChanged=$(stat --format '%y' /.bbdata | awk '{print $1" "$2}' | sed 's/\.[0-9]*//g') mailx -r "Systems and Operations...

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

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

61
Автозаполнение имен серверов для SSH и SCP

У меня настроено несколько серверов ~/.ssh/config, таких как alphaи beta. Как я могу настроить Bash таким образом, чтобы команды ssh al<tab>и scp file.tgz al<tab>автозаполнять имена настроенных серверов? Я не хочу добавлять серверы в другой файл (например, массив Bash) каждый раз, когда...

61
Как я могу удалить дубликаты в моем .bash_history, сохраняя порядок?

Я действительно наслаждаюсь control+rрекурсивным поиском в моей истории команд. Я нашел несколько хороших вариантов, которые мне нравится использовать с ним: # ignore duplicate commands, ignore commands starting with a space export HISTCONTROL=erasedups:ignorespace # keep the last 5000 entries...

61
Есть ли способ заставить «мв» потерпеть неудачу молча?

Команда like mv foo* ~/bar/выдает это сообщение в stderr, если не найдено ни одного файла foo*. mv: cannot stat `foo*': No such file or directory Тем не менее, в сценарии, над которым я работаю, этот случай вполне подойдет, и я хотел бы опустить это сообщение в наших журналах. Есть ли хороший...

61
Как измерить время выполнения программы и сохранить его в переменной

Чтобы выяснить, сколько времени занимают определенные операции в скрипте Bash (v4 +), я хотел бы проанализировать выходные данные timeкоманды «по отдельности» и (в конечном итоге) перехватить ее в переменной Bash ( let VARNAME=...). Теперь я использую time -f '%e' ...(или, скорее, command time -f...

60
Почему Баш думает: 016 + 1 = 15?

Может кто-нибудь объяснить мне, почему число с ведущим 0 дает такое забавное поведение? #!/bin/bash NUM=016 SUM=$((NUM + 1)) echo "$NUM + 1 = $SUM" Распечатает: 016 + 1 = 15

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

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

59
Как повторить взрыв!

Я попытался создать скрипт, echoвставив содержимое в файл, а не открывая его в редакторе. echo -e "#!/bin/bash \n /usr/bin/command args" > .scripts/command Выход : bash:! / bin / bash: событие не найдено Я выделил это странное поведение на ура . $ echo ! ! $ echo "!" bash: !: event not found $...

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
С BASH после «прокрутки» до предыдущей команды… как перейти к следующему в этой истории?

Извините, этот заголовок не самый элегантный, который я когда-либо придумывал. Но я предполагаю, что многие люди будут удивлены этим, и мой вопрос может быть обманом ... все, что я могу сказать, я не нашел это. Когда я говорю «прокрутка» вверх, я имею в виду использование клавиши «стрелка вверх» на...

58
Список подкаталогов только на глубину n

Фестиваль сохраняет данные голосового пакета в следующей структуре каталогов: /usr/share/festival/voices/<language>/<voicepack name> Какой простейший однострочный (желательно использовать ls) для распечатки только <voicepack name>букв во всех потенциально многочисленных...

58
Отдельная команда для входа в SSH и запуска программы?

Есть ли способ структурировать одну команду для входа через SSH на удаленный сервер и запуска программы в оболочке удаленного входа? В руководстве OpenSSH написано: «Если указана команда, она выполняется на удаленном хосте вместо оболочки входа в систему». Так, например, ssh user@server mailвойдете...

58
Как `да` пишет в файл так быстро?

Позвольте мне привести пример: $ timeout 1 yes "GNU" > file1 $ wc -l file1 11504640 file1 $ for ((sec0=`date +%S`;sec<=$(($sec0+5));sec=`date +%S`)); do echo "GNU" >> file2; done $ wc -l file2 1953 file2 Здесь вы можете видеть, что команда yesзаписывает 11504640строки в секунду, а я...

58
Используйте & (амперсанд) в однострочном цикле bash

Я успешно использовал эту команду, которая изменяет переменную в файле конфигурации, а затем выполняет скрипт Python в цикле: for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py; done Поскольку DoMyScript.pyдля запуска каждой из них требуется около 30 секунд, я хотел бы...

58
Что означает «rm is hashed»?

Я иду через http://mywiki.wooledge.org/BashGuide/CommandsAndArguments и наткнулся на это: $ type rm rm is hashed (/bin/rm) $ type cd cd is a shell builtin Чуть раньше в руководстве были перечислены различные типы команд, понятные Bash: псевдонимы, функции, встроенные функции, ключевые слова и...