Я написал скрипт bash, который сначала выполняет операции с текстовыми файлами, а затем выполняет другой скрипт изнутри, повторяя эту операцию в цикле while. Скрипт, который выполняется изнутри, в определенное время запрашивает у пользователя
«нажмите, чтобы остановить»
и подождите 5 секунд, если пользователь не нажмет возврат, пойдет дальше. Если я выполняю этот скрипт один, он работает нормально, но если я запускаю его внутри другого, кажется, что клавиша возврата нажимается автоматически и останавливает выполнение.
Как я могу этого избежать?
Вот пример скрипта:
#!/bin/bash
pMatrixFile='file.csv'
templateFile='out.txt'
nSim=0
while read line
do
((nSim++))
# ***************Read the input file*****************************************
scale1=$(echo $line | cut -f1 -d\;)
scale2=$(echo $line | cut -f2 -d\;)
# ***************Write the file to be runned*********************************
sed -e "/double Scale_EX2 = / s|scale_DOE|$scale1|g" \
-e "/double Scale_EX6 = / s|scale_DOE|$scale2|g" \
-e "/double Scale_EX7 = / s|scale_DOE|$scale8|g" <$templateFile >$fileName
# ***************Launch the simulation on server*****************************
sed -e "s|simFile|$simFile|g" <$submitTemplateFile >$submitFile
sed -i "s|simVisName|$simVisName|g" $submitFile
# *************At this line we have the issue!***********
chmod a+x $submitFile
. ./$submitFile |tee log
# *******************************************************
# ***************Clean up the temporary files********************************
rm $simFile $fileName $submitFile
done<$pMatrixFile
$submitFile — это мой внешний скрипт.
Спасибо за помощь!
$submitFile
в качестве первой строки#!/bin/bash
? Если есть#!/bin/sh
, командаread
должна работать по-другому... - person Hastur   schedule 11.07.2014