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

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

6
знайти n найчастіших слів у файлі
Я хочу знайти, скажімо, 10 найпоширеніших слів у текстовому файлі. По-перше, рішення має бути оптимізоване для натискань клавіш (іншими словами - мій час). По-друге, за виставу. Ось, що я маю поки що, щоб потрапити у топ-10: cat test.txt | tr -c '[:alnum:]' '[\n*]' | uniq -c | sort -nr | …

2
Передача даних до stdin процесу, не викликаючи після цього EOF
У мене є виконуваний файл, який запускає інтерактивну оболонку користувача. Я хотів би, щоб після запуску оболонки ввести кілька команд спочатку, а потім дозволити користувачеві провести свій інтерактивний сеанс. Я можу це зробити легко, використовуючи echo: echo "command 1\ncommand 2\ncommand3" | ./shell_executable Це майже працює. Проблема полягає в тому, що …


1
Дескриптори файлів та сценарії оболонки
Мені дуже важко зрозуміти, як використовуються дескриптори файлів у скриптах оболонки. Я знаю основи, такі як exec 5 > /tmp/foo Так fd 5 додається до foo для написання. exec 6 < /tmp/bar … Для читання. exec 5>&- … Закрити fd. Тепер що це робить? #!/bin/bash exec 5 > /tmp/foo exec …

4
Як видалити файл на віддаленій машині через SSH за допомогою сценарію Shell?
Я пишу сценарій оболонки, де мені потрібно видалити файл на віддаленій машині через скрипт оболонки. Потік вручну: ssh username@domain.com .. тоді в домені: cd ./some/where rm some_file.war Як виконати це завдання?
32 ssh  shell-script 

5
getopt, getopts або ручний розбір - що використовувати, коли я хочу підтримувати як короткі, так і довгі варіанти?
В даний час я пишу сценарій Bash, який має такі вимоги: він повинен працювати на широкому спектрі платформ Unix / Linux він повинен підтримувати як короткі, так і (GNU) довгі варіанти Я знаю, що це getoptsбув би кращий спосіб з точки зору портативності, але AFAIK не підтримує довгих варіантів. getoptпідтримує …


2
Яка різниця між kill, pkill та killall
Мені добре знайома killкоманда, і ми часто використовуємо kill -9, щоб насильно вбити процес, є багато інших сигналів, з якими можна використовувати kill. Але мені цікаво, якими є випадки використання pkillта killall, якщо вже є команда kill. Чи використовувати pkillта killallвикористовувати killкоманду при їх виконанні? Я маю на увазі, що …

8
Як ефективно генерувати великі, рівномірно розподілені випадкові цілі числа в баші?
Мені було цікаво, що було б найкращим способом отримати добру випадковість у баші, тобто якою буде процедура отримання випадкового додатного цілого числа між MINта MAXтаким, що Діапазон може бути довільно великим (або принаймні, скажімо, до 2 32 -1); Значення рівномірно розподілені (тобто відсутність упередженості); Це ефективно. Ефективний спосіб отримати випадковість …

1
SSH викликає зупинку циклу
Нарешті мені вдалося усунути проблему, з якою я боровся вже кілька тижнів. Я використовую SSH з "авторизованими клавішами" для віддаленого запуску команд. Все добре, за винятком випадків, коли я це роблю в певний час. Цикл завершується після завершення будь-якої ітерації командою ssh. Довгий час я думав, що це якась дивна …

4
Чи є оболонка JavaScript?
Останнім часом я працюю з JS і дуже захоплююсь цією мовою. Я знаю, що існує node.js для запуску JS на стороні сервера, але чи є оболонка, яка використовує JS як мову сценаріїв? Якщо така річ існує, наскільки вона зручна і стабільна?


3
Якщо я буду виконувати файл сценарію Bash, чи всі команди всередині сценарію Bash будуть виконані як sudo?
Я хочу написати автоматичний сценарій після встановлення в Bash (так називається post-install.sh, наприклад). Сценарій автоматично додавати та оновлювати сховища, встановлювати та оновлювати пакети, редагувати конфігураційні файли тощо. Тепер, якщо я виконую цей скрипт, наприклад, з sudo post-install.sh, мені буде запропоновано ввести sudoпароль лише один раз, або мені потрібно буде вводити …

4
Чому множина -e не працює всередині підзаголовків з дужками (), а потім списком АБО ||?
Нещодавно я натрапив на такі сценарії, як: ( set -e ; do-stuff; do-more-stuff; ) || echo failed Це мені добре виглядає, але це не працює! Додаток set -eне застосовується, коли ви додаєте ||. Без цього він прекрасно працює: $ ( set -e; false; echo passed; ); echo $? 1 Однак …

6
скрипт вихідної оболонки з підшару
Розглянемо цей фрагмент: stop () { echo "${1}" 1>&2 exit 1 } func () { if false; then echo "foo" else stop "something went wrong" fi } Зазвичай, коли funcвін викликається, це призведе до припинення дії сценарію, що і є передбачуваною поведінкою. Однак, якщо він виконується в підколонці, наприклад в …

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