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

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

4
Логічний І в сценарії bash
У мене є ifсценарій bash, який повинен перевірити, чи існує EITHER з 2-х файлів, якщо вони не існують, він повинен відповідати. Код у мене: if [[ ! -f /etc/benchmarking/code ]] && [[ ! -f /etc/benchmarking/code.class ]]; then echo "match" fi Але це, здається, не працює чомусь. Я на 110% впевнений, …

5
Як я можу профілювати сценарій оболонки?
У мене є кілька програм, які я виконую в сценарії оболонки: ./myprogram1 ./myprogram2 ... Я знаю, що я можу профайлювати кожну окрему програму шляхом редагування вихідного коду, але я хотів знати, чи є спосіб я міряти загальний час, виконаний шляхом профілювання самого сценарію. Чи є програма таймера, яку я можу …

2
Використовуючи команду "select" для друку меню в Bash
Я намагаюся реалізувати просте меню за допомогою selectкоманди. Сценарій (для тестування) такий: #!/bin/bash echo "*******************" PS3='Select an option and press Enter: ' options=("apache" "named" "sendmail") select opt in "${options[@]}" do case $opt in "apache") date ;; "named") echo "test" ;; "sendmail") echo "test 2" ;; *) echo "invalid option";; esac …

1
Як додати кілька рядків до файлу з bash, з "-" перед рядком
Питання дуже схоже на те, як додати кілька рядків до файлу з bash, але я хочу розпочати файл-- , а також додати його до файлу, якщо можливо. printf "--no-color\n--format-doc\n--no-profile\n" >> ~/.rspec-test Проблема полягає у запуску файлу з "-" дає мені: -bash: printf: --: invalid option printf: usage: printf [-v var] …

1
Намагаюся написати скрипт оболонки, який продовжує тестувати сервер віддалено, але він продовжує потрапляти в оператор else, коли я виходжу
Спробую тут написати скрипт оболонки, який продовжує тестувати мій сервер і надсилати мені електронну пошту, коли він не працює. Проблема полягає в тому, що коли я виходжу з з'єднання ssh, незважаючи на запуск його &в кінці команди, наприклад ./stest01.sh &, він автоматично потрапляє в інше і продовжує безперервно надсилати мені …

4
Продуктивність циклу та розширення
Потрібні експертні пропозиції щодо порівняння нижче: Сегмент коду за допомогою циклу: for file in `cat large_file_list` do gzip -d $file done Сегмент коду за допомогою простого розширення: gzip -d `cat large_file_list` Який буде швидше? Доводиться маніпулювати великим набором даних.

3
Як я можу запобігти виникненню помилок у моєму .bashrc непідтримувані параметри "shopt"?
Я працюю у відносно неоднорідному середовищі, де я можу запускати різні версії Bash на різних вузлах HPC, VM або моїй персональній робочій станції. Оскільки я розміщую свої скрипти для входу в Git repo, я хотів би використовувати те саме (ish) .bashrcпо всій дошці, без великої кількості "якщо цей хост, то …


3
"Варіалізуйте" амперсанд (фоновий процес)
Я хочу знати, чи є спосіб помістити ampersand у змінну і все ж використовувати її для надсилання процесу на задній план. Це працює: BCKGRND=yes if [ "$BCKGRND" = "yes" ]; then sleep 5 & else sleep 5 fi Але хіба не було б круто виконати ці п'ять рядків лише одним? …

2
Будуйте команду динамічно
Я працюю над сценарієм і мені потрібно будувати tarкоманду динамічно. Ось два приклади, щоб проілюструвати те, що я намагаюся зробити: #!/bin/bash TAR_ME="/tmp" EXCLUDE=("/tmp/hello hello" "/tmp/systemd*" "/tmp/Temp*") _tar="tar "`printf -- '--exclude="%s" ' "${EXCLUDE[@]}"`" -zcf tmp.tar.gz" echo COMMAND: "${_tar}" ${_tar} "$TAR_ME" echo -e "\n\nNEXT:\n\n" EXCLUDE=("--exclude=/tmp/hello\ hello" "--exclude=/tmp/systemd*" "--exclude=/tmp/Temp*") _tar="tar "`printf -- '%s …

6
Bash сортувати масив відповідно до довжини елементів?
Враховуючи масив рядків, я хотів би сортувати масив відповідно до довжини кожного елемента. Наприклад... array=( "tiny string" "the longest string in the list" "middle string" "medium string" "also a medium string" "short string" ) Сортувати за ... "the longest string in the list" "also a medium string" "medium string" "middle …


2
Маніпулювання командним рядком XML (скриптом оболонки)
Як маніпулювати XML з командного рядка в скрипті оболонки? Існує багато команд для маніпулювання табличними даними, заміни змінної середовища або заміни текстових фрагментів на регулярні вирази, але я не знайшов нічого для XML. У моєму скрипті побудови потрібно вставити тег із вмістом у основний тег документа xml, і я вважаю …

3
Захист команди оболонки за допомогою змінної рядка
В рамках мови програмування я виконую просту команду оболонки cd var; echo > create_a_file_here при цьому Var є змінною, яка містить рядок (сподіваюсь) каталогу до місця, де я хочу створити файл "create_a_file_here". Тепер, якщо хтось бачить цей рядок коду, його можна використовувати, призначивши, наприклад: var = "; rm -rf /" …

7
Навпроти команди "source"
Я використовую sourceкоманду в моєму скрипті bash для того, щоб прочитати / надрукувати значення змінних more linuxmachines_mount_point.txt export linuxmachine01="sdb sdc sdf sdd sde sdg" export linuxmachine02="sde sdd sdb sdf sdc" export linuxmachine03="sdb sdd sdc sde sdf" export linuxmachine06="sdb sde sdf sdd" source linuxmachines_mount_point.txt echo $linuxmachine01 sdb sdc sdf sdd sde …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.