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

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


6
sh recursive copy (cp -r) - Как исключить подпапку
Мне нужно запустить удаленный скрипт , используя с sshпомощью Ruby( нетто / SSH ) рекурсивно скопировать папку и исключить папку. Я ищу самый быстрый способ сделать это, так что rsyncэто не хорошо. Также я понимаю, что sshиспользует shи нет bash. В Bash я делаю: cp -r srcdir/!(subdir) dstdir и работает …
8 shell  ssh  cp 

3
Shell: использование функции с параметрами в if
Я пытаюсь выполнить код ниже, но когда я пытаюсь использовать свою функцию в операторе if, я получаю -bash: [: too many argumentsошибку. Почему это происходит? Заранее спасибо! notContainsElement () { local e match="$1" shift for e; do [[ "$e" == "$match" ]] && return 1; done return 0 } list=( …

2
контекст вызова функции в zsh: эквивалент bash `caller`
В bash я могу написать: caller 0 и получить контекст звонящего : Номер строчки функция Название сценария Это чрезвычайно полезно для отладки. Данный: yelp () { caller 0; } Затем я могу написать, yelpчтобы увидеть, какие строки кода достигаются. Я могу реализовать caller 0в bashвиде: echo "${BASH_LINENO[0]} ${FUNCNAME[1]} ${BASH_SOURCE[1]" Как …

1
Развертывание параметров в $ @ не поддерживается оболочкой sh?
Я опубликовал ответ на вопрос об AU и обнаружил, что расширение параметра on $@не работает с shоболочкой: <infile xargs -d'\n' sh -c 'echo "${@%%/*}"' _ но работает нормально bash. Это ожидаемое поведение shоболочки, и как я могу выполнить расширение там? Кроме того, я знаю, что с -n1опцией xargsя могу передать …
8 bash  shell  dash 


2
Добавление файла в файлы tbz
Я ищу способ обновить тысячи архивных файлов .tbz, поэтому я буду делать это с помощью сценария оболочки. Мне нужно добавить один файл к каждому. Мой вопрос: есть ли более быстрый способ сделать это, не извлекая содержимое каждого tbz, а затем повторно сжимая его с новым файлом, включенным в содержащийся tar? …

2
Проверить, содержит ли переменная символ новой строки (POSIX)
Я знаю, что некоторые оболочки выдерживают такой тест: t() { [[ $var == *$'\n'* ]] && res=yes || res=no printf '%s ' "$res"; } var='ab cd' t var='abcd' t echo на исполнение: $ bash ./script yes no Что такое рабочий эквивалент POSIX (тире) Является ли следующий надежный способ проверки? nl=' …

2
Какую логику использует команда «exec tail -n +3 $ 0» из конфигурации grub2?
Создавая пользовательский пункт меню, застрял на этой команде: exec tail -n +3 $0 Попробовал в терминале, получил странный результат, не может понять, что именно делает эта команда и зачем она нужна grub. Не могли бы вы объяснить, пожалуйста?
8 shell  grub2  tail  exec 

6
Элегантный способ построить конвейер на основе возвращаемого значения, а не кода выхода?
Когда код состояния бесполезен, есть ли способ построить конвейер на основе вывода из stdout? Я бы предпочел, чтобы ответ был не на сценарии использования, а на вопросе сценариев оболочки. Я пытаюсь найти наиболее конкретный пакет, доступный в репозитории, угадав имя на основе кодов страны и языка. Возьмите, к примеру, это, …

1
Почему выход с сохраненным кодом возврата вложенной команды приводит к различным кодам возврата в Dash и Bash?
Бег bash -c 'bash -c "echo test1; exit 1;" &> /tmp/x; buildresult=$?; tail -n 100 /tmp/x; exit $buildresult;' в результате test1выводится на консоль и echo $?печатается, 1что, на мой взгляд, правильно, потому что команда должна возвращать то, что [b/d]ash -cвернул внутренний, тогда как dash -c 'dash -c "echo test1; exit …

3
Разница копии содержимого папки между /. и / * в Linux
чтобы скопировать содержимое из папки, которую я прочитал, используется: cp -rfva ../foldersource/. ./ но это тоже работает cp -rfva ../foldersource/* ./ есть ли разница? Например, если я хочу удалить содержимое из папки с. : rm -rf ../foldersource/. я получаю ошибку: rm: rejet delete folder '.' or '..': но со звездочкой …
8 linux  shell 

1
Создание моей собственной функции cp в bash
Для задания меня просят умно написать функцию bash, которая имеет те же основные функции, что и функция cp(копия). Нужно только скопировать один файл в другой, поэтому несколько файлов не будут скопированы в новый каталог. Поскольку я новичок в языке bash, я не могу понять, почему моя программа не работает. Оригинальная …

5
Эффективно объединять / сортировать / уникально большое количество текстовых файлов
Я пытаюсь наивно $ cat * | sort -u > /tmp/bla.txt который терпит неудачу с: -bash: /bin/cat: Argument list too long Таким образом, чтобы избежать глупого решения типа (создает огромный временный файл): $ find . -type f -exec cat {} >> /tmp/unsorted.txt \; $ cat /tmp/unsorted.txt | sort -u > …
8 shell  sort  uniq 

3
В #! / Bin / bash. Команда Unix для получения даты первого дня недели в месяце
Я ищу прямые команды Unix, чтобы получить первое воскресенье следующего месяца, первый понедельник следующего месяца, первый вторник следующего месяца, первую среду следующего месяца и т. Д. Они понадобятся мне в полном формате даты (время не обязательно) Я могу получить числа, такие как 2, 3, 4 и т. Д. Так как …
8 shell  date 

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