Как добавить аргументы в скрипт [дубликат]

Ofreceré lo mío:

umount /somedir/

lvdisplay /dev/vgsource/lv0 --units b

lvcreate -L 12345b -n lv0 vgtarget

dd if=/dev/vgsource/lv0 of=/dev/vgtarget/lv0 bs=1024K conv=noerror,sync status=progress

mount /dev/vgtarget/lv0 /somedir/

si todo está bien, quita la fuente

lvremove vgsource/lv0
0
02.06.2019, 17:02
2 ответа

Для пронумерованных аргументов между 0и 9, где x— конкретный пронумерованный аргумент, используйте это обозначение:

$x

Для пронумерованных аргументов выше того, где x— конкретный пронумерованный аргумент, используйте эту нотацию:

${x}

Чтобы получить список всех аргументов, используйте это:

${@}

Или это:

${*}

Обратите внимание, что когда -заключен в двойные кавычки, ${*}расширяет все аргументы пробелом -, разделенным (, обычно, технически это первый символ переменной$IFS(внутреннего разделителя полей ))в одну строку. ${@}раскрывается в несколько строк, когда -заключен в двойные кавычки.

Брекетинг не требуется при использовании ${@}или ${*}.

0
28.01.2020, 05:05

Это может быть дубликат ответов на вопросы. Тем не менее, пожалуйста, найдите возможное решение для вашего запроса в виде очень простого сценария оболочки ниже.

#!/bin/bash

for i in ${@} ; do
    case ${i} in
        --test)     echo "test option found"
                    ;;
        *)          echo "Usage: $0 [--test]"
                    exit 1
    esac
done
echo "$0 finished."

Вы можете узнать больше, если поэкспериментируете с параметрами этого сценария оболочки в командной строке. Это может вполне уместно добавить к первому ответу JL2210 .

Н.Б. Строка echo "Usage: $0 [--test]"предназначена для предоставления некоторого справочного сообщения и использует соглашение для обозначения необязательных аргументов в квадратных скобках.

Надеюсь, это поможет.

-1
28.01.2020, 05:05

Теги

Похожие вопросы