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

Оболочка является интерфейсом командной строки Unix. Вы можете вводить команды в оболочке в интерактивном режиме или писать сценарии для автоматизации задач. Используйте этот тег для вопросов, относящихся к / bin / sh и большинству совместимых оболочек (ash, bash, ksh, zsh,…). Для сценариев оболочки с ошибками, пожалуйста, проверьте их в http://shellcheck.net перед публикацией здесь.


3
ImageMagick на несколько файлов
Я преобразовал один файл из BMP в PNG с помощью ImageMagick, convertиспользуя команду ниже convert CD\ Front.bmp CD\ Front.png У меня много таких файлов, поэтому я попробовал: for f in */*.bmp ; do convert $f ${f%bmp}png; done но эта команда висит навсегда. Что я делаю неправильно?

3
Лечение обратного слеша через оболочки
Как echoи printfлечить слеш zsh, bashи другие снаряды? Под Zsh я получаю следующее поведение: $ echo "foo\bar\baz" foaaz $ echo "foo\\bar\\baz" foaaz $ echo 'foo\bar\baz' foaaz $ echo 'foo\\bar\\baz' foo\bar\baz В bash все выглядит более согласованным: bash$ echo "foo\bar\baz" foo\bar\baz bash$ echo 'foo\bar\baz' foo\bar\baz bash$ Но более конкретно: как я …
9 bash  shell  zsh  quoting 

3
Как убить задание, которое было инициировано в другой оболочке (окно терминала или вкладка)?
Если я начну процесс и задний фон в терминальном окне (скажем ping google.com &), я могу убить его с помощью kill %1(при условии, что это задание 1). Однако, если я открою другое окно терминала (или вкладку), фоновый процесс не будет указан в списке jobsи не может быть уничтожен напрямую с …

3
Разделить вывод команды по переносу строки?
У меня есть команда, возвращающая несколько строк. Для дальнейшей обработки мне нужно обработать каждую строку этих строк. Мой текущий код работает путем изменения IFS ( Разделитель внутренних полей ): ROWS=$(some command returning multiple lines) O=$IFS #save original IFS IFS=$(echo -en "\n\b") # set IFS to linebreak for ROW in ${ROWS[@]} …

2
Выполнение команды на удаленном хосте с интерактивным SSH (условно)
Я хотел бы иметь возможность автоматически запускать команду на удаленном хосте каждый раз, когда я вхожу на этот хост, но в рамках текущего интерактивного сеанса SSH. Что-то вроде ssh user@remotehost [run do.sh] где do.shвыполняет несколько служебных задач, а затем снова подключается к screenсеансу (в настоящее время я запускаю do.shвручную после …

3
Как открыть новую строку, используя цикл for?
В разных местах в Интернете я нашел: \015 \012 \x0a - hex \n \r все как синонимы для различных новых строк / возвратов каретки ... Но в этом небольшом сценарии я не могу распознать, когда сталкиваюсь с новой строкой - может кто-нибудь сказать мне, что я должен проверять в строке …
9 bash  shell  string 


2
Как оболочка (например, bash) расширяет шаблоны подстановочных знаков?
Предположим, что каталог содержит 100 файлов, начинающихся с буквы «а». Если я сделаю grep <some string> a*из терминала, как оболочка справится с этим? Будет ли он расширять регулярное выражение, получать список всех файлов, начинающихся с a и grep для каждого из них последовательно? Или есть какой-то другой способ? Предположим, что …
9 bash  shell  wildcards 

3
«Mkdir Foo; svn mv * foo ”
Я часто хочу сделать несколько вариантов этой идиомы: $ mkdir 2010 $ svn mv * 2010 Конечно, я получаю ошибку, потому что глобус также соответствует 2010: svn: Cannot copy path '2010' into its own child '2010/2010' Есть ли способ заменить "svn mv * 2010"на другой однострочник, который делает правильную вещь?

7
Как очистить расширения файлов?
У меня есть каталоги с файлами .MP3, которые я хотел бы изменить на .mp3. Какой самый простой способ сделать это? Я думаю, что-то вроде: find /RootPath -type f -iname "*.mp3" -exec mv {} sed s/.*MP3/\1.mp3/ \; ... хотя я знаю, что это не совсем правильно. :) Подстановка неверна, и я …
9 shell  find  rename 

1
замена процесса bash временным файлом
Некоторым программам нужны их файлы для поиска, например objdump. $ objdump -D -b binary -m i8086 <(echo 0xea 0x5b 0xe0 0x00 0xf0|xxd -r -p) objdump: Warning: '/proc/self/fd/11' is not an ordinary file Было бы удобно иметь подстановку процесса, используя временные файлы. На странице руководства я вижу, что bash может использовать …

7
Команда Bash awk с кавычками
Я пытался найти ответ на этот вопрос некоторое время. Я пишу быстрый скрипт для запуска команды, основанной на выводе из awk. ID_minimum=1000 for f in /etc/passwd; do awk -F: -vID=$ID_minimum '$3>=1000 && $1!="nfsnobody" { print "xfs_quota -x -c 'limit bsoft=5g bhard=6g $1' /home "}' $f; done Проблема в том, что …
8 bash  shell  scripting 

6
Проверка на наличие нескольких каталогов
Я хочу проверить наличие нескольких каталогов, скажем dir1, dir2и dir3в рабочем каталоге. У меня есть следующее if [ -d "$PWD/dir1" ] && [ -d "$PWD/dir2" ] && [ -d "$PWD/dir3" ]; then echo True else echo False fi Но я подозреваю, что есть более элегантный способ сделать это. Не думайте, …

2
Требуется объяснение того, как я могу повторить символ в оболочке POSIX
Следующий ответ на переполнение стека, Как я могу повторить символ в Bash? навязывает один правдоподобный способ POSIX - только повторение одного символа следующим образом. В этом примере давайте используем знак равенства 100 раз: printf %100s | tr " " "=" Моя проблема в том, что я не понимаю, как это …
8 shell  posix  printf  tr 

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