Я пытаюсь написать скрипт, в котором выбор списка настраивается с помощью цикла for:

list1="name1 name2"
list2="name3 name4"

echo "which list do you want to use? (list1 or list2)"
read userInput

for item in $userInput
do ....

Это не работает Я тоже попробовал это ниже, но тоже не повезло.

for item in $($userInput)

2 ответа2

2

Используйте косвенное расширение параметров:

for item in ${!userInput} ; do
    ...
done

Вы должны проверить $ userInput перед запуском цикла.

0

Это работает, только не используйте for item in цикле. Это работает для массивов. То, что вы прочитали в $ userInput, является строкой. Попробуйте что-то вроде этого:

#!/bin/bash 

list1="name1 name2"
list2="name3 name4"

echo "which list do you want to use? (list1 or list2)"
read userInput

if [ $userInput == "list2" ] ;
then
    something
else
    something else
fi

Очевидно, измените «что-то» и «что-то еще» на то, что должен делать ваш скрипт.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .