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

20
Выражение в скобках (без диапазонов), совпадающее с неожиданным символом в bash

Я использую Bash на Linux. Я получаю успех от следующего оператора if, но разве это не должно возвращать код ошибки? if [[ ■ = [⅕⅖⅗] ]] ; then echo yes ; fi Квадрат НЕ равен ни одному из символов, поэтому я не понимаю, почему я получаю код успеха. Для меня важно сохранить двойные скобки в моем...

20
Bash - последовательность чисел в одной строке

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

20
Что делает `<& -`?

Я скопировал фрагмент Bash в фоновую команду ssh, выполненную удаленно: ssh user@remote <<CMD some process <&- >log 2>error & CMD Что делает <&-? Я думаю, что это так же, как< /dev/null Мое следующее понимание , что три основные файловые дескрипторы ( stdin, stdout,...

20
Почему EOF в середине аргументов?

Я хотел написать небольшую функцию bash, чтобы я мог сказать bash, import osили from sys import stdoutона создаст новый интерпретатор Python с импортированным модулем. Последняя fromфункция выглядит так: from () { echo "from $@" | xxd python3 -i -c "from $@" } Если я назову это: $ from sys import...

20
Сравнение целых чисел: арифметическое выражение или условное выражение

В Bash два целых числа можно сравнить с помощью условного выражения arg1 OP arg2 OP является одним из -eq, -ne, -lt, -le, -gt, или -ge. Эти арифметические бинарные операторы возвращают true, если arg1 равно, не равно, меньше, меньше или равно, больше или больше или равно arg2 , соответственно. Arg1...

20
иногда команды истории не сохраняются в .bash_history

Вчера я выпустил много команд в своем CentOS 7. Но когда я хотел получить эти команды сегодня, я обнаружил, что никакой записи не было. Когда я открыл файл .bash_history, я все еще не мог найти команды, которые я дал вчера, но я нашел много старых команд несколько дней назад. Почему последние...

20
вложенные двойные кавычки в однолинейных с высоким рейтингом

StackOverflow ответ с> 3.5K голосов показывает этот один вкладыш для присвоения DIRдиректории текущего скрипта Баша: DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" Я озадачен вложенными двойными кавычками. Насколько я могу судить, следующие фрагменты заключены в двойные кавычки:...

20
Как я могу вводить n повторений цифры в Bash, в интерактивном режиме

Я хотел бы запустить команду foo --bar=baz <16 zeroes> Как мне эффективно ввести 16 нулей *? Если я удерживаю Altи нажимаю, 1 6 0то повторю следующую вещь 160 раз, а это не то, чего я хочу. В emacs я могу использовать Alt-[number]или Ctrl-u 1 6 Ctrl-u 0, но в bash Ctrl-uубивает текущую...

20
Всегда ли безопасно использовать `eval echo`?

Использование evalчасто не рекомендуется, потому что это позволяет выполнять произвольный код. Однако, если мы используем eval echo, то похоже, что остальная часть строки станет аргументом, echoпоэтому она должна быть безопасной. Я прав в...

20
Bash добавить завершающие пробелы для выравнивания строки

Мой текущий код выглядит так:, x=${y:0:40}который ограничивает длину строки до 40 символов. Если строка длиной менее 40 символов, можно ли заполнить пробелы? Так что если мой y="very short text" Я хотел бы, чтобы мой у был: y = "очень короткий текст (+25 пробелов)...

20
Как я могу увидеть, какая команда была на самом деле запущена в оболочке, через псевдоним или функцию

Например, у меня есть функция bash (или псевдоним) function install() {sudo apt-get install $@}. При запуске команды install dicelab, я ожидаю, что на самом деле будет выполняться sudo apt-get install dicelab. Где я могу увидеть, что на самом деле было запущено оболочкой? Я хотел бы убедиться, что...

20
Grep медленно выходить после нахождения совпадения?

Я пытаюсь написать bash-скрипт, который опрашивает btmon на предмет подключения устройств. У меня есть рабочее решение, но оно абсурдно медленное, и кажется, что проблема в том, что grep очень медленно выходит после нахождения совпадения (около 25 секунд). Что я могу сделать, чтобы ускорить grepили...

20
Escape переменная для использования в качестве содержимого другого скрипта

Этот вопрос не о том, как написать правильно экранированный строковый литерал. Я не смог найти ни одного связанного вопроса, который бы не касался того, как экранировать переменные для непосредственного использования в скрипте или другими программами. Моя цель - включить скрипт для генерации других...

20
Почему поведение `command 1> file.txt 2> file.txt` отличается от` command 1> file.txt 2> & 1`?

Если вы хотите перенаправить как stdout, так и stderr в один и тот же файл, вы можете сделать это с помощью command 1>file.txt 2>&1или command &>file.txt. Но почему поведение command 1>file.txt 2>file.txtотличается от двух приведенных выше команд? Ниже приведена команда...

20
Существует ли ярлык для выполнения серии команд в истории Bash?

Предположим, у меня есть следующий тривиальный пример в моем history: ... 76 cd ~ 77 ./generator.sh out.file 78 cp out.file ~/out/ 79 ./out/cleaner.sh . 80 ls -alnh /out ... Если я хотел выполнить команды 77, 78и 79в одной команде, существует ли ярлык для этого? Я пытался !77 !78 !79, который...

20
Почему [-n] неверно, как [-n “”]?

Мой вопрос о возвращаемых значениях, полученных этим кодом: if [ -n ]; then echo "true"; else echo "false"; fi Это печатает true. Его дополнительный тест, использующий [ -z ]также принты true: if [ -z ]; then echo "true"; else echo "false"; fi В приведенном выше коде, почему [ -n ]тест принимает...

20
Сценарий оболочки для создания файла, если он не существует?

Мне нужно создать сценарий оболочки, который проверяет наличие файла и, если он не существует, создает его и переходит к следующей команде или просто переходит к следующей команде. То, что у меня есть, не делает этого. #!/bin/bash # Check for the file that gets created when the script successfully...

20
Что печатает один восклицательный знак в Bash?

Bash использует восклицательные знаки для расширений истории, как объяснено в ответах на этот вопрос (например, sudo !!запускает предыдущую командную строку с помощью sudo). Тем не менее, я не могу найти нигде, который объясняет, что выполняет следующая команда (то есть один восклицательный знак):...

20
Есть ли недостатки настройки `noclobber`?

Учитывая, что zshможет заглушить все файлы, заданные командой: >* Я думаю, что установка опции noclobberбыла бы хорошей идеей. Я всегда могу использовать, >| fileесли я хочу использовать стандартное поведение clobber в bash и zsh. (Zsh также допускает альтернативный синтаксис >!file). Я...