возвращаемое значение bash - PullRequest
       0

возвращаемое значение bash

1 голос
/ 02 октября 2009

Мне нравится писать скрипт или функцию (пока не знаю, какая именно), которая будет вызываться другим скриптом. Сценарий или функция должны генерировать несколько значений. Как я могу написать их в bash, чтобы в другом скрипте я мог получить значения, возвращаемые скриптом или функцией?

Примеры особенно ценятся!

Спасибо и всего наилучшего!

Ответы [ 3 ]

5 голосов
/ 02 октября 2009

Используйте переменную Bash $ IFS (внутренний разделитель полей)

dfunc () {echo "first base:second base:third base:home"}

saveIFS=$IFS
IFS=":"
dval=($(dfunc))    # make an array
IFS=$saveIFS       # put $IFS back as soon as you can, you'll thank me
echo ${dval[1]}

Выходы:

вторая база

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

И не используйте обратные тики , используйте $().

1 голос
/ 02 октября 2009

Сценарий, генерирующий вывод, отправляет свой вывод на стандартный вывод, а вызывающий сценарий извлекает его с помощью обратных галочек. Пример кода:

script1.sh:

#!/bin/bash
echo 1 2 3 4

script2.sh:

#!/bin/bash

for ITEM in `script1.sh`
do
    echo Item = $ITEM
done
0 голосов
/ 02 октября 2009

Как строка, ограниченная общеизвестным символом (например, двоеточие, как это принято для $PATH и т.п.)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...