Вопросы с тегом «shell-script»

Вопросы о сценариях оболочки, исполняемых файлах, которые интерпретируются оболочкой (bash, zsh и т. Д.).

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

3
Скрипт Bash с `set -e` не останавливается по команде`… &&… `
Я использую, set -eчтобы остановить скрипт bash при первой ошибке . Все работает хорошо, если я не использую команду с &&: $ cat script set -e cd not_existing_dir && echo 123 echo "I'm running! =P" $ $ ./script ./script: line 2: cd: not_existing_dir: No such file or directory I'm running! …

2
Почему кавычки необходимы для аргумента файлов при вызове этого скрипта Bash?
Я довольно новичок в скриптах 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 процесса субъекта, который его выполнил. Примечание: мне любопытно узнать о различных решениях и подходах, я не …

8
Как проверить, присутствует ли какой-либо IP-адрес в файле с помощью сценариев оболочки?
У меня есть скрипт, который генерирует какой-то вывод. Я хочу проверить этот вывод для любого IP-адреса, как 159.143.23.12 134.12.178.131 124.143.12.132 if (IPs are found in <file>) then // bunch of actions // else // bunch of actions // Это fgrepхорошая идея? У меня есть Bash доступны.
13 shell-script  grep  ip 

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 "$@" …

2
Почему «bash -x» ломает этот скрипт?
У меня есть скрипт, который измеряет, как долго выполняется какая-то команда. Ему нужна «настоящая» timeкоманда, то есть двоичный файл, например, в /usr/bin/time(поскольку встроенный bash не имеет -fфлага). Ниже приведен упрощенный скрипт, который можно отлаживать: #!/bin/bash TIMESEC=$(echo blah | ( /usr/bin/time -f %e grep blah >/dev/null ) 2>&1 | awk -F. …

5
Как я могу получить этот скрипт для выхода из ошибки на основе результата цикла for?
У меня есть сценарий Bash, который использует set -o errexitтак, чтобы в случае ошибки весь сценарий выходил в точке сбоя. Сценарий запускает curlкоманду, которая иногда не может получить нужный файл - однако, когда это происходит, сценарий не завершается с ошибкой. Я добавил forцикл в сделать паузу на несколько секунд, затем …

1
Скопируйте файл и добавьте метку времени
У меня есть две проблемы с моим сценарием, который копирует файлы и добавляет метку времени к имени. cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date +"%m-%d-%y-%T") Вышеуказанное добавляет в Test2качестве имени файла имя, но я хочу, чтобы оно сохранило имя файла исходного исходного файла, которое в этом примере называется Test. cp -ra /home/bpacheco/Test1 /home/bpacheco/Test2-$(date …


9
Инструмент командной строки для «парного» раскрытия всех строк в файле
Предположим, у меня есть файл (назовите его sample.txt), который выглядит следующим образом: Row1,10 Row2,20 Row3,30 Row4,40 Я хочу иметь возможность работать с потоком из этого файла, который по сути является попарной комбинацией всех четырех строк (поэтому мы должны в итоге получить 16). Например, я ищу потоковую (то есть эффективную) команду, …

2
Можно ли при запуске сценария оболочки передавать определенные позиционные параметры, не вводя их все по порядку?
Например, если у меня есть скрипт ./foo, который принимает 10 параметров, и я хочу передать только 8-й параметр. В настоящее время я знаю, как это сделать: ./foo '' '' '' '' '' '' '' 'bar' Есть ли более простой / лучший способ?

1
Почему я должен дважды убежать от «точки»?
Я знаю, что мы можем избежать специального символа, такого как *(){}$с, \чтобы считаться литералами. Например \*или\$ Но в случае .я должен сделать это дважды, в \\.противном случае это считается специальным персонажем. Пример: man gcc | grep \\. Почему это так?

4
Как явно вызвать встроенную оболочку?
Я хочу настроить функциональность cdкоманды в соответствии с моими потребностями. Я определил следующую функцию - function cd () { cd "$@" && pushd "$@"; } Цель этой функции - автоматически поместить каталог в стек, чтобы сэкономить время, необходимое для ввода вручную pushd .каждый раз. Однако указанная выше функция является бесконечно …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.