Текст attribute.csv "собака", "6" «кот», «3» «mikeymouse», «10»
firstScript.sh
#!/bin/bash
echo "Start Say"
read a
while((1))
do
echo -n "Master: "
read animal
if [[ $animal = "dog" ]];then
echo "Age: 6"
elif [[ $animal = "cat" ]];then
echo "Age: 3"
elif [[ $animal = "mikeymouse" ]];then
echo "Age: 10"
fi
done
secondScript.sh
#!/bin/bash
export line=`wc -l ~/Desktop/attribute.csv | awk {'print $1'}`
expect -c '
set timeout 3
spawn /Users/dog/Desktop/firstScript.sh
expect {
"Start Say" {send "\r";exp_continue}
"Master: " {
for {set i 1} {$i<=$env(line)} {incr i} {
send [exec bash -c {awk -F '\''"'\'' {'\''print $2'\''} ~/Desktop/attribute.csv | sed -n "$i"p}]\r
}
interact
}
timeout {puts "\nTimeout";exit 0}
}
'
echo ""
фактический результат : $ /Users/dog/Desktop/secondScript.sh spawn /Users/dog/Desktop/firstScript.sh Начать Сказать
Хозяин: собака кошка микрофонная мышь Возраст: 6 Мастер: Возраст: 3 Мастер: Возраст: 10 Мастер: собака кошка микрофонная мышь Возраст: 6 Мастер: Возраст: 3 Мастер: Возраст: 10 Мастер:
$
Проблема в том, что я не могу получить ожидаемый результат, как показано ниже: $ /Users/dog/Desktop/secondScript.sh spawn /Users/dog/Desktop/firstScript.sh Start Say
Хозяин: собака Возраст: 6 Мастер: кошка Возраст: 3 года Мастер: mikeymouse Возраст: 10 Мастер: