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

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

3
Переменная как команда; Эвал против Баш-C
Я читал сценарий bash, который кто-то сделал, и заметил, что автор не использует eval для оценки переменной как команды . Автор использовал bash -c "$1" вместо того eval "$1" Я предполагаю, что использование eval является предпочтительным методом, и в любом случае он, вероятно, быстрее. Это правда? Есть ли практическая разница …

1
Что «set -» делает в этой точке входа Dockerfile?
Я пытаюсь понять, что делает эта точка входа в Docker . Мне кажется, что при написании Dockerfiles это очень распространенный паттерн, но мои навыки работы с bash ограничены, и я понятия не имею о всех специальных символах bash kung fu. Кроме того, трудно гуглить по "-", "$!" и т.д. Как …
41 shell-script  set 

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

2
Объединение аргументов bash в одну строку с пробелами
Я пытаюсь объединить все аргументы функции Bash в одну строку с пробелами, разделяющими каждый аргумент. Мне также нужно, чтобы строка включала одинарные кавычки вокруг всей строки. Вот что у меня так далеко ... $array=("$@") str="\'" for arg in "${array[@]}"; do let $str=$str+$arg+" " done let $str=$str+"\'" Очевидно, это не работает, …

5
Заменить переменные среды в файле с их фактическими значениями?
Есть ли простой способ заменить / оценить переменные среды в файле? Например, у меня есть файл, config.xmlкоторый содержит: <property> <name>instanceId</name> <value>$INSTANCE_ID</value> </property> <property> <name>rootPath</name> <value>/services/$SERVICE_NAME</value> </property> ...так далее. Я хочу заменить $INSTANCE_IDв файле значение INSTANCE_IDпеременной окружения $SERVICE_NAMEзначением SERVICE_NAMEenv var. Я априори не буду знать, какие переменные среды нужны (или, скорее, …


2
Как работает awk '! A [$ 0] ++'?
Эта однострочная строка удаляет повторяющиеся строки из текстового ввода без предварительной сортировки. Например: $ cat >f q w e w r $ awk '!a[$0]++' <f q w e r $ Оригинальный код, который я нашел в интернете, читал: awk '!_[$0]++' Это было еще более озадачивающим для меня, так как я …

1
GNU параллельно против & (я имею в виду фон) против xargs -P
Я смущен разницей или преимуществом (если есть) запуска набора задач в .shскрипте с использованиемGNU parallel Например, ответ Оле Танге : parallel ./pngout -s0 {} R{} ::: *.png вместо того, чтобы повторять их в фоновом режиме &. Например, ответ frostschutz : #copied from the link for illustration for stuff in things …

4
Команда nvm недоступна в скрипте bash
Я пытаюсь построить сценарий, в котором nvmи в конечном итоге узел будет установлен. Я установил nvmс CURL. Я вижу изменения в файле .profileили .bashrc(оба работают), и при вводе nvmв командной строке bash, он показывает доступные опции и т.д. Так что nvm работает. Вручную я могу установить узел, но как только …

3
Какие стандартные команды доступны в каждом дистрибутиве на основе Linux?
Я хотел бы знать, какие стандартные команды доступны в каждой системе Linux. Например, если вы получили Debian / Ubuntu / Redhat / Suse / Arch / Slackware и т. Д., Вы всегда найдете там такие команды, как: cd, mkdir, ls, echo, grep, sed, awk, ping и т. д. Я знаю, …

2
Почему использование && в 75 раз быстрее, чем… fi, и как сделать код понятнее
У меня есть следующий рабочий код: largest_prime=1 for number_under_test in {1..100} do is_prime=true factors='' for ((divider = 2; divider < number_under_test-1; divider++)); do remainder=$(($number_under_test % $divider)) [ $remainder == 0 ] && [ is_prime ] && is_prime=false && factors+=$divider' ' done [ $is_prime == true ] && echo "${number_under_test} is …


2
Что означает «$ {- # * i}»! = «$ -»?
В /etc/profileэтом я вижу: for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null 2>&1 fi fi done Что ${-#*i}значит Я не могу найти определение начала расширения параметров ${-.

4
Самый простой способ комментировать / раскомментировать определенные строки с помощью командной строки
Есть ли способ комментировать / раскомментировать сценарий shell / config / ruby ​​с помощью командной строки? например: $ comment 14-18 bla.conf $ uncomment 14-18 bla.conf это добавит или удалит #знак bla.confна линии 14к 18. Обычно я использую sed, но я должен знать содержимое этих строк, а затем выполнить операцию поиска …

3
chmod + тихий режим + как заставить код выхода 0 несмотря на ошибку
Возможно ли выполнить chmod и игнорировать ошибку из команды Пример (примечание file.txt не существует, чтобы показать пример) Когда я печатаю chmod 777 file.txt Я получаю ошибку на выходе chmod: cannot access file.txt : no such file or directory Поэтому я добавляю флаг -f к команде следующим образом: (file.txt не существует, …

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