В итоге у меня получилось нечто, что кажется грубым, если есть лучший способ, пожалуйста, опубликуйте его:
#!/bin/sh
DONE=false
until $DONE; do
for i in $(seq 1 $2); do
read line || DONE=true;
[ -z "$line" ] && continue;
lines+=$line$'\n';
done
sql=${lines::${#lines}-10}
(cat "Header.sql"; echo "$sql";) | sqlcmd
#echo "--- PROCESSED ---";
lines=;
done < $1
Запустите с помощью ./insert.sh "File.sql" 100
, где 100 - это количество строк, обрабатываемых за один раз.
Вы используете -eq
для сравнения чисел. Ваш =
при сравнении строк
send "if [ `ps -ef | grep ttyS1 | sed -n 1p | cut -d ' ' -f 2` = 'ttyS1' ]; then
not_found='false'
else
not_found='true'
fi\r"
И вы можете использовать двойные кавычки, поскольку они уже используются. Вы также можете оставить строку ttyS1
без кавычек