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

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

4
Зберігати коди виходу при захопленні SIGINT та подібних?
Якщо я використовую, trapяк описано, наприклад, на http://linuxcommand.org/wss0160.php#trap, щоб увімкнути ctrl-c (або подібне) та очищення перед виходом, тоді я змінюю код повернення, який повертається. Тепер це, мабуть, не матиме значення в реальному світі (наприклад, через те, що коди виходу не є портативними, і, крім того, не завжди однозначним, як обговорювалося …

5
Як порівняти версію програми в сценарії оболонки?
Припустимо, я хочу порівняти gccверсію, щоб побачити, чи встановлена ​​в системі мінімальна версія чи ні. Щоб перевірити gccверсію, я виконав наступне gcc --version | head -n1 | cut -d" " -f4 Вихід був 4.8.5 Отже, я написав просту ifзаяву, щоб перевірити цю версію на якусь іншу цінність if [ "$(gcc …

1
Виконаний файл з назвою 'test' знаходиться в $ PATH, але не запускається
У мене є файл у $ HOME / bin (перш ніж ви запитаєте, так, це на моєму шляху), testякий, як я підтвердив, може бути добре виконаний, коли я запускаю його з повним шляхом до файлу. Однак у мене виникає справді дивна проблема, коли я не запускаю це таким чином. Коли …


4
Чи можливо надрукувати вміст змісту змінної за допомогою сценарію оболонки? (непряме посилання)
Припустимо, я оголосив такі змінні: $ var='$test' $ test="my string" Якщо я друкую їхній вміст, я бачу таке: $ echo $var $test $ echo $test my string Я хотів би знайти спосіб друкувати зміст контенту $var(який є вмістом $test). Тому я спробував зробити наступне: $ echo $(echo $var) $test Але …

3
Навіщо перевіряти наявність файлу, перш ніж його знайти?
Якщо ви намагаєтесь створити файл, ви не хочете, щоб помилка заявила, що файл не існує, щоб ви знали, що виправити? Наприклад, nvm рекомендує додати це у свій профіль / rc: export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm Якщо вище, якщо nvm.shне існує, ви отримаєте …

3
Чому "ps ax" не знайде запущений скрипт bash без "#!" заголовок?
Коли я запускаю цей сценарій, призначений для запуску, поки не вб'є ... # foo.sh while true; do sleep 1; done ... я не в змозі знайти його за допомогою ps ax: >./foo.sh // In a separate shell: >ps ax | grep foo.sh 21110 pts/3 S+ 0:00 grep --color=auto foo.sh ... …

2
Виконати команду bash після деяких одночасних команд?
Я хочу виконати кілька команд паралельно. Після завершення всіх цих команд запустіть наступну. Я хоч наступний підхід спрацює #!/bin/bash command1 & command2 & command3 && command4 але це не сталося Мені потрібно запустити, command4коли всі перші три команди будуть повністю закінчені.

6
Визначення бінарних команд перед виконанням
Чи є методи перевірити, що ви насправді виконуєте з bash-скрипту? Припустимо, що ваш Баш скрипт телефонує кілька команд (наприклад: tar, mail, scp, mysqldump) , і ви готові , щоб переконатися , що tarфактична, реальна tar, яка може бути визначена з допомогою rootкористувача , що є власником файлу і батьківський каталог …


2
Чому для виклику цього сценарію Bash потрібні лапки для аргументів файлів?
Я зовсім новачок сценаріїв Баша. У мене є "тестовий сценарій", який я використав як основу для більш просунутого / корисного сценарію: #!/bin/bash files=$1 for a in $files do echo "$a" done Коли я закликаю це без жодних лапок, він просто збирає один файл у каталозі: testscript *.txt Але коли я …

2
Чи є спосіб для скрипта оболонки знати, яка програма його виконала?
Чи існує у * nix світі, чи є у сценарію оболонки інформація про те, яка програма його виконала? Приклад: /path/to/script1 /path/to/script_xyz у цьому уявному сценарії script_xyzматиме інформацію про шлях ( /path/to/script1) або обробити PID суб'єкта господарювання, який його виконав. Примітка: мені цікаво різні рішення та підходи, я не очікую, що …

3
Як видалити \ n між виходами двох команд ехо?
У мене є текстовий файл, що містить одне ім’я файлу у кожному рядку: 111_c4l5r120.png 123_c4l4r60.png 135_c4l4r180.png 147_c4l3r60.png 15_c4l1r120.png ... Я хочу перетворити його в такий вигляд: 111_c4l5r120.png 111 123_c4l4r60.png 123 135_c4l4r180.png 135 147_c4l3r60.png 147 15_c4l1r120.png 15 ... використовуючи цей код: #!/bin/bash while IFS='' read -r line || [[ -n "$line" …

2
Як видалити позиційний параметр з $ @
В основному, я хочу "вирвати" перше виникнення -infзі списку параметрів. (Решта параметрів будуть передані іншій команді.) У мене сценарій має таку структуру: #!/bin/sh <CODE> for POSITIONAL_PARAM in "$@" do <CODE> if [ "$POSITIONAL_PARAM" = '-inf' ] then <PLUCK $POSITIONAL_PARAM FROM $@> break fi <CODE> done <CODE> some-other-command "$@" # end …

2
Чому "bash -x" порушує цей сценарій?
У мене є сценарій, який вимірює, як довго виконується деяка команда. Для цього потрібна команда "real" time, тобто двійковий файл, наприклад у /usr/bin/time(оскільки вбудований bash не має -fпрапора). Нижче спрощений сценарій, який можна налагодити: #!/bin/bash TIMESEC=$(echo blah | ( /usr/bin/time -f %e grep blah >/dev/null ) 2>&1 | awk -F. …

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