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

8
В #! / Bin / bash. Команда Unix для получения даты первого дня недели в месяце

Я ищу прямые команды Unix, чтобы получить первое воскресенье следующего месяца, первый понедельник следующего месяца, первый вторник следующего месяца, первую среду следующего месяца и т. Д. Они понадобятся мне в полном формате даты (время не обязательно) Я могу получить числа, такие как 2, 3, 4 и...

8
Эффективно объединять / сортировать / уникально большое количество текстовых файлов

Я пытаюсь наивно $ 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
Создание моей собственной функции cp в bash

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

8
Разница копии содержимого папки между /. и / * в Linux

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

8
Почему выход с сохраненным кодом возврата вложенной команды приводит к различным кодам возврата в 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...

8
Элегантный способ построить конвейер на основе возвращаемого значения, а не кода выхода?

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

8
Какую логику использует команда «exec tail -n +3 $ 0» из конфигурации grub2?

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

8
Проверить, содержит ли переменная символ новой строки (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='...

8
Добавление файла в файлы tbz

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

8
Развертывание параметров в $ @ не поддерживается оболочкой sh?

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

8
контекст вызова функции в zsh: эквивалент bash `caller`

В bash я могу написать: caller 0 и получить контекст звонящего : Номер строчки функция Название сценария Это чрезвычайно полезно для отладки. Данный: yelp () { caller 0; } Затем я могу написать, yelpчтобы увидеть, какие строки кода достигаются. Я могу реализовать caller 0в bashвиде: echo...

8
Shell: использование функции с параметрами в if

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

8
sh recursive copy (cp -r) - Как исключить подпапку

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

8
Требуется объяснение того, как я могу повторить символ в оболочке POSIX

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

8
Проверка на наличие нескольких каталогов

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

8
Команда 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;...

7
команда печати вместо эха в Linux

Я просто могу напечатать сообщение в терминале с помощью echoкоманды linux . prayag@prayag$ echo "prayag works on JVM" prayag works on JVM Могу ли я иметь тот же вывод с printкомандой. Я на самом деле просмотрел их руководства, где $ man printописывает их как Run-mailcap-программы, термин которых я...

5
Процесс убит перед запуском в фоновом режиме

Я использую скрипт bash, script.shсодержащий команду cmd, запущенную в фоновом режиме: #!/bin/bash … cmd & … Если я открываю эмулятор терминала и запускаю script.sh, cmdон корректно выполняется в фоновом режиме, как и ожидалось. То есть, пока script.shзакончился, cmdпродолжает работать в...