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

28
В Bash, если [-z “$ 1”] и [[$ 1 ”=“ ”] одно и то же?

В скриптах оболочки Bash, в чем разница (если таковая имеется) между следующими двумя операторами?     1.) if [ -z "$1" ]     2.) if [ "$1" = "" ] Я обнаружил, что пишу второй в некоторых сценариях, но потом я прочитал здесь, что использование -zдостигает того же. Если есть проблемы с...

28
для против найти в Баш

При циклическом просмотре файлов существует два способа: используйте for-loop: for f in *; do echo "$f" done использовать find: find * -prune | while read f; do echo "$f" done Предполагая, что эти два цикла найдут один и тот же список файлов, каковы различия между этими двумя параметрами в...

28
Почему мне нужно поместить «do» в той же строке, что и «for»?

1. Резюме Я не понимаю, зачем мне правило E010 bashate . 2. Детали Я использую Bashate для Linting .shфайлов. Правило E010: делать не на той же линии, что и для for bashate: Правильный: #!/bin/bash for f in bash/*.sh; do sashacommand "$f" done Ошибка: #!/bin/bash for f in bash/*.sh do sashacommand...

28
Область действия локальных переменных в функциях оболочки

После прочтения 24.2. Локальные переменные , я думал, что объявление переменной varс ключевым словом localозначало, что varзначение было доступно только внутри блока кода, ограниченного фигурными скобками функции. Однако после запуска следующего примера, я обнаружил, что varтакже может быть...

28
Удалить диапазон линий над шаблоном с помощью sed (или awk)

У меня есть следующий код, который удалит строки с шаблоном bananaи 2 строки после него: sed '/banana/I,+2 d' file Все идет нормально! Но мне нужно, чтобы он убрал 2 строки раньше banana , но я не могу получить его со знаком «минус» или чем-то еще (похоже на то, что grep -v -B2 banana fileдолжно...

28
Почему оболочка автоматически не исправляет «бесполезное использование кошки»? [закрыто]

Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 8 месяцев назад . Многие люди используют oneliners и скрипты, содержащие код вдоль строк cat...

28
Bash скрипт для конвертирования всех * flac в * .mp3 с помощью FFmpeg?

Я хочу конвертировать все * .flac в * .mp3 в определенной папке. Это то, что я пробовал, но не работает: # change to the home directory cd ~/music # convert all *.flac files ffmpeg -i *.flac -acodec libmp3lame *.mp3 # (optional: check whether there are any errors printed on the terminal) sleep 60...

28
Почему «-» в «#! / bin / sh - ”Шебанг?

#! / bin / sh - Является (или, по крайней мере, было) часто рекомендуемым Шебангом для интерпретации сценария /bin/sh. Почему не просто #! /bin/shили #!/bin/sh? Для чего это

28
Где продолжение строки bash после && и || документально?

Я часто видел эту конструкцию в сценариях и использовал ее сам, но меня беспокоит, что я не могу найти ее в документации. Пример: [ -f file1 ] && [ -f file2 ] && echo "Both files exist." || echo "One or the other file doesn't exist." Это также можно сделать с помощью обратной косой...

28
Преобразование подчеркивания в PascalCase, т.е. UpperCamelCase

Если у меня есть строка, которая выглядит так: "this_is_the_string" Внутри bash-скрипта я хотел бы преобразовать его в PascalCase, т.е. UpperCamelCase, чтобы он выглядел так: "ThisIsTheString" Я обнаружил, что преобразование в lowerCamelCase может быть сделано следующим образом:...

28
В чем разница между одинарным и двойным знаком равенства (=) в сравнениях оболочки?

Прочитайте, что для сравнения строк внутри ifмы должны использовать двойные квадратные скобки. В некоторых книгах говорится, что сравнение может быть сделано =. Но это работает с ==тоже. #!/bin/bash a="hello" b="world" if [[ $a == $b ]];then echo "equal" fi Есть ли разница между =и ==в...

27
Что означает «пока:;»?

Я знаю, что такое whileпетля. Тем не менее, я видел только это работает с: while [condition] while ![condition] while TRUE (infinite loop) Где утверждение whileдолжно быть либо TRUEили FALSE. Существует встроенная команда оболочки с именем :. Это описывается как фиктивная команда, которая ничего не...

27
Как читать из двух входных файлов, используя цикл while

Я хотел бы знать, есть ли какой-либо способ чтения из двух входных файлов во вложенном цикле while по одной строке за раз. Например, допустим, у меня есть два файла FileAи FileB. FiLea: [jaypal:~/Temp] cat filea this is File A line1 this is File A line2 this is File A line3 FILEB: [jaypal:~/Temp]...

27
Тестирование, если переменная пуста в сценарии оболочки

Я видел следующую технику, которую много раз использовали на разных оболочках, чтобы проверить, является ли переменная пустой: if [ "x$1" = "x" ]; then # Variable is empty fi Есть ли какие-либо преимущества в использовании этого по сравнению с более каноническим if [ -z "$1" ]? Может ли это быть...

27
В чем заключается полезность команды: в сценариях оболочки, если она явно ничего не делает?

В ответе на этот вопрос о комментариях в сценариях оболочки указано, :что это пустая команда, которая явно ничего не делает (но не должна использоваться для комментариев). Какова была бы полезность команды, которая абсолютно ничего не...

27
Как отсортировать строку, которая сочетается со строкой + цифрой, используя скрипт bash?

Это данные, которые я хочу отсортировать. Но sortобрабатывает число в строку, данные не сортируются, как я ожидал. / home / файлы / profile1 / home / файлы / profile10 / home / файлы / profile11 / home / файлы / profile12 / home / файлы / profile14 / home / файлы / profile15 / home / файлы /...