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

Вопросы о сценариях оболочки, исполняемых файлах, которые интерпретируются оболочкой (bash, zsh и т. Д.).

9
Почему лучше использовать «#! / Usr / bin / env NAME» вместо «#! / Path / to / NAME» в качестве моего шебанга?
Я заметил, что некоторые сценарии, которые я приобрел у других, имеют шебанг, в #!/path/to/NAMEто время как другие (использующие тот же инструмент, NAME) имеют шебанг #!/usr/bin/env NAME. Кажется, что оба работают правильно. В руководствах (например, по Python), кажется, есть предположение, что последний шебанг лучше. Но я не совсем понимаю, почему это …

3
Использование «$ {a: -b}» для назначения переменных в скриптах
Я смотрел на несколько сценариев, написанных другими людьми (в частности, на Red Hat), и многие их переменные присваиваются с использованием следующих обозначений VARIABLE1="${VARIABLE1:-some_val}" или некоторых других переменных. VARIABLE2="${VARIABLE2:-`echo $VARIABLE1`}" Какой смысл использовать эту запись вместо простого объявления значений (например, VARIABLE1=some_val)? Есть ли преимущества в этой записи или возможные ошибки, которые …

14
В Bash, когда для псевдонима, когда для сценария, и когда написать функцию?
У меня ушло почти 10 лет использования Linux, чтобы задать этот вопрос. Все это было методом проб и ошибок и случайным ночным интернет-серфингом. Но людям не нужно 10 лет для этого. Если бы я только начинал с Linux, я бы хотел знать: когда использовать псевдоним, когда писать сценарий и когда …

5
Почему мой сценарий оболочки заглушает пробелы или другие специальные символы?
Или вводное руководство по надежной обработке имени файла и другой передаче строк в сценариях оболочки. Я написал сценарий оболочки, который работает хорошо большую часть времени. Но он душит некоторые входные данные (например, некоторые имена файлов). Я столкнулся с такой проблемой, как: У меня есть имя файла, содержащее пробел hello world, …

23
Как я могу получить свой внешний IP-адрес в сценарии оболочки?
Мне нужно найти мой внешний IP-адрес из сценария оболочки. На данный момент я использую эту функцию: myip () { lwp-request -o text checkip.dyndns.org | awk '{ print $NF }' } Но это зависит от того perl-libwww, perl-html-format, perl-html-treeустановлен. Какими еще способами я могу получить свой внешний IP?
273 linux  shell-script  ip 

3
Какие символы мне нужно экранировать при использовании sed в скрипте sh?
Возьмите следующий скрипт: #!/bin/sh sed 's/(127\.0\.1\.1)\s/\1/' [some file] Если я попытаюсь запустить это в sh( dashздесь), это потерпит неудачу из-за круглых скобок, которые должны быть экранированы. Но мне не нужно избегать обратной косой черты (между октетами или в \sили \1). Какое правило здесь? Как насчет того, когда мне нужно использовать …

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

8
Как я могу проверить, является ли переменная пустой или содержит только пробелы?
Следующий синтаксис bash проверяет, paramне является ли он пустым: [[ ! -z $param ]] Например: param="" [[ ! -z $param ]] && echo "I am not zero" Нет выхода и его хорошо. Но когда paramпусто, за исключением одного (или более) пробела, тогда дело обстоит иначе: param=" " # one space …

3
Очистить содержимое файла
Мне известны три способа удаления всех записей из файла. Они есть >filename touch filename filename < /dev/null Из этих трех я злоупотребляю >filenameбольше всего, так как для этого требуется наименьшее количество нажатий клавиш. Тем не менее, я хотел бы знать, какой из трех наиболее эффективных методов (если есть какие-либо более …

3
Последствия для безопасности: забыть заключить переменную в оболочку bash / POSIX
Если вы следили за unix.stackexchange.com какое-то время, вы должны надеяться, что уже знаете, что оставление переменной без кавычек в контексте списка (как в echo $var) в оболочках Bourne / POSIX (исключение zsh) имеет очень особое значение и не должно быть сделано, если у вас нет очень веских причин. Это обсуждается …


12
Как изменить расширение нескольких файлов?
Я хотел бы изменить расширение файла с *.txtна *.text. Я попытался использовать basenameкоманду, но у меня возникают проблемы при изменении более одного файла. Вот мой код: files=`ls -1 *.txt` for x in $files do mv $x "`basename $files .txt`.text" done Я получаю эту ошибку: basename: too many arguments Try basename …



10
Как обрезать начальные и конечные пробелы в каждой строке некоторого вывода?
Я хотел бы удалить все начальные и конечные пробелы и вкладки из каждой строки в выводе. Есть ли простой инструмент, как trimя мог бы передать свой вывод? Пример файла: test space at back test space at front TAB at end TAB at front sequence of some space in the middle …

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