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

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

3
Дужки в умові: якщо я отримую синтаксичні помилки без пробілів?
Я використовую наведений нижче сценарій, щоб повернутись на два дні назад, коли сценарій працює з початку двох днів року, а також перевірити перший і другий дні кожного місяця і перемістити два дні назад. if [$month="01"] && [$day="01"]; then date="$last_month/$yes_day/$last_year" fulldate="$last_month/$yes_day/$last_year" else if [$month="01"] && [$day="02"]; then date="$last_month/$yes_day/$last_year" fulldate="$last_month/$yes_day/$last_year" else if …

1
У сценаріях налагодження, яка різниця між -x для встановлення -euxo pipefail?
Основний спосіб, яким я знаю, налагоджувати сценарії - це додавання -xдо шабангу ( #!/bin/bash -x). Нещодавно я натрапив на новий спосіб, додавши set -euxo pipefailпрямо під шабанг, як у: #!/bin/bash set -euxo pipefail У чому головна відмінність двох способів налагодження? Чи бувають випадки, коли ви віддаєте перевагу один над іншим? …

4
Префікс і суфіксні рядки до кожного вихідного рядка з команди
У мене виникли проблеми, намагаючись написати сценарій Bash. Коли grepвиводить, він повертає (як правило) багато рядків. Я хотів би встановити префікс і суфікс рядка до кожного з цих вихідних рядків. Я також хотів би відзначити , що я ТРУБОПРОВІДНИЙ lsв grep, як: ls | grep

3
як зняти останню косу риску шляху до каталогу?
У мене є сценарій, для якого потрібен каталог як один аргумент. Я хочу підтримати дві форми: одна схожа a/b/c (жодної косою рисою в кінці) та інша схожа a/b/c/ (має косу рису в кінці). Моє запитання: з огляду на будь-яку з двох форм, як я можу просто зберегти першу форму без …

3
джерело сценарію Bash - Повернення помилки, а не виходу?
Я шукаю скрипт bash в терміналі , тому виходжу з помилки з set -o errexit вбиває мій термінал, який НАЙКРАЙНО ДУЖЕ, тому що я повинен закрити термінал, відкрити ще один і скинути деякі змінні. Поки що, використовуючи command || return рядки, за сценарієм, роблять саме те, що я хочу set …

5
Як я можу видалити все, поки шаблон не буде і все після іншого шаблону з рядка?
У наступному файлі: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut eu metus id lectus vestibulum ultrices. Maecenas rhoncus. Я хочу видалити все до consectetuerі все після elit. Мій бажаний вихід: consectetuer adipiscing elit. Як я можу це зробити?

4
Як я можу перерахувати всі імена користувачів та / або домашні каталоги?
Я хочу перерахувати всі користувачі бруду на машині. Зазвичай я зроблю: ls -l /home Але я використовую його в сценарії, який буде розгорнуто на інших машинах, і, можливо, на тих машинах вони не називають його додому (наприклад, myHome). Тому я хочу це узагальнити ls -l ~. Але він просто перераховує …

6
Виберіть інтерпретатора після запуску сценарію, наприклад, якщо / else всередині hashbang
Чи є спосіб динамічного вибору інтерпретатора, який виконує сценарій? У мене є сценарій, що я працюю на двох різних системах, і інтерпретатор, який я хочу використовувати, розташований у різних місцях на двох системах. Що мені доводиться робити - це змінювати лінію хешбангу кожен раз, коли я переключаюсь. Я хотів би …

1
Видаліть тишу з аудіофайлів, залишаючи пробіли
Наразі ми використовуємо цю команду в сценарії оболонки для видалення тиші з аудіофайлів: ffmpeg -i $INFILE -af silenceremove=0:0:0:-1:1:${NOISE_TOLERANCE}dB -ac 1 $SILENCED_FILE -y Це чудово працює, за винятком того, що він видаляє всю тишу, в результаті чого решта аудіо стискається разом. Як це можна зробити, залишаючи дві-три секунди між кожним фрагментом …

1
Чому ці бомбовидні бомби працюють по-різному і яке значення & в ньому?
Я розумію, як працює звичайна вилка бомба, але я не дуже розумію, для чого потрібна & в кінці загальної бомби вилка бомба і чому ці сценарії поводяться по-різному: :(){ (:) | (:) }; : і :(){ : | :& }; : Перший викликає сплеск використання процесора перед тим, як повернути …

5
Швидко стискайте велику кількість великих файлів
У мене щоденно генерується близько 200 ГБ даних журналів, які розподіляються між приблизно 150 різними файлами журналів. У мене є сценарій, який переміщує файли у тимчасове місце і робить tar-bz2 у тимчасовому каталозі. Я отримую хороші результати, оскільки журнали в 200 ГБ стискаються приблизно до 12-15 ГБ. Проблема полягає в …

5
Це помилка в баші? `return` не припиняє функцію, якщо викликається з труби
Останнім часом у мене виникають дивні проблеми з басом. Намагаючись спростити свій сценарій, я придумав цей невеликий фрагмент коду: $ o(){ echo | while read -r; do return 0; done; echo $?;}; o 0 $ o(){ echo | while read -r; do return 1; done; echo $?;}; o 1 returnмав …

4
порівняйте два стовпчики різних файлів та друкуйте, якщо вони відповідають
Я використовую Solaris 10 і так виправляти варіанти із залученням -f не працює. У мене є два файли, розділені трубою: file1: abc|123|BNY|apple| cab|234|cyx|orange| def|kumar|pki|bird| файл 2: abc|123| kumar|pki| cab|234 Я хотів би порівняти перші два стовпчики file2 з file1 (пошук у всьому вмісті file1 у перших двох стовпцях), якщо вони …

4
Запропонуйте ssh-add бути тихим, якщо ключ вже є
Я хочу поставити ssh-add /path/to/special_keyвершину сценарію. Це добре працює, але це завжди вимагає ввести парольну фразу. Це дивно, і трохи дратує, оскільки він все ще просить пройти фразу навіть тоді, коли ssh-add -lпоказ ключів уже доданий. Чи є спосіб сказати це: "додайте цей ключ і запитайте парольну фразу, якщо вона …

5
Державна функція bash
Я хотів би реалізувати функцію в Bash, яка збільшує (і повертає) кількість при кожному виклику. На жаль, це здається нетривіальним, оскільки я викликаю функцію всередині підклітини, і, отже, не вдається змінити змінні його батьківської оболонки. Ось моя спроба: PS_COUNT=0 ps_count_inc() { let PS_COUNT=PS_COUNT+1 echo $PS_COUNT } ps_count_reset() { let PS_COUNT=0 …

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