Я очень новичок в оболочке. Мне нужно вернуть несколько значений из функции оболочки, поэтому я отправляю аргументы в качестве параметров для функции, как в языках программирования, таких как C, используя указатели. Я вызываю функцию как этотКак назначить значение параметрам функции в сценарии оболочки
splitDate $date day month year
здесь день месяц & лет являются переменные, в которой я хочу, чтобы сохранить значение. Мое определение функции выглядит следующим образом
splitDate(){
export IFS="/"
declare -a var
index=0
for word in $1; do
var[ $index ]=$word
((index++))
done
$2=${var[0]}
$3=${var[1]}
}
Когда я запускаю это я получаю эту ошибку «день = theValueIWant: команда не найдена» & «месяц = theValueIWant: команда не найдена» Что здесь не так? тест: Если я обеспечиваю 04/05/2017 как дата я ожидаю день хранения 04 месяцев для хранения 05 & год для хранения 2017
Можете ли вы представить пример с реальными значениями? Вход и ожидаемый результат? – Inian
См. [Этот ответ] (http://stackoverflow.com/questions/540298/bash-passing-arguments-by-reference/2852445#2852445) – Julian
Вы действительно уверены, что это то, что вы хотите? Печать вывода в виде последовательности токенов, чтобы вы могли записать его в переменные с помощью 'set --' или что бы, вероятно, лучше справлялись с общим дизайном оболочки. – tripleee