Запитання з тегом «shell-script»

Запитання щодо скриптів оболонки, виконуваних файлів, які інтерпретуються оболонкою (bash, zsh тощо).

1
Що робить "set -" у цій точці входу Dockerfile?
Я намагаюся зрозуміти, що робить ця вхідна точка Докера . Мені здається, це дуже поширений зразок при написанні Dockerfiles, але мої баш-навички обмежені, і я не маю уявлення про всі спеціальні баш-символи кунг-фу. Крім того, важко гугл для "-", "$!" тощо. Як їх називають у світі баш? Підводячи підсумок, що …
41 shell-script  set 

4
CD у всіх каталогах, виконайте команду над файлами у цьому каталозі та поверніться до попереднього поточного каталогу
Я намагаюся написати скрипт, який буде запускатися в заданому каталозі з багатьма однорівневими підкаталогами. Сценарій буде CD в кожному з підкаталогів, виконає команду над файлами в каталозі і cd вийде для продовження наступного каталогу. Який найкращий спосіб зробити це?

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. Я не знаю апріорі, які параметри середовища потрібні (а точніше, я …


3
Перевірте, чи містить рядок підрядку
У мене є код file="JetConst_reco_allconst_4j2t.png" if [[ $file == *_gen_* ]]; then echo "True" else echo "False" fi Я тестую, якщо file містить "gen". Вихід "Неправдивий". Приємно! Проблема полягає в тому, що я замінюю "gen" змінною testseq: file="JetConst_reco_allconst_4j2t.png" testseq="gen" if [[ $file == *_$testseq_* ]]; then echo "True" else echo …

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

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

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

4
Команда nvm недоступна у скрипті bash
Я намагаюся створити сценарій, в якому nvmі врешті-решт буде встановлений вузол. Я встановив nvmcURL. Я бачу модифікації у файлі .profileабо .bashrc(обидві працюють), і при введенні nvmпідказки bash, він показує наявні параметри тощо. Отже, nvm працює. Вручну я можу встановити вузол, але як тільки я встав nvmкоманду в сценарій оболонки: nano …

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.confon-line 14до 18. Зазвичай я використовую sed, але я повинен знати вміст цих рядків, а потім зробити операцію пошуку-заміни, і …

3
chmod + silent mode + як змусити код виходу 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.