Мне нужно запустить программу в фоновом режиме. Я знаю, что использование «&» после команды запускает команду в фоновом режиме.
В следующем сценарии:
#!/bin/bash
echo amt of time delay nsec
read nano
echo amt of time delay in sec
read sec
echo no.of times
read i
while [ $i -ne 0 ]
do
./nanosleep $sec $nano
./schello
i=$[i-1]
done
У меня есть несколько данных, которые я получаю от пользователя. Есть ли способ, которым я могу запустить программу в фоновом режиме, и при вызове программы я также могу указать необходимые данные (например, nano, sec, i) в качестве аргументов или каким-либо другим способом?
Если Ваш сценарий называют, позвольте, говорят test.sh
, то Вы можете, например:
передают Ваш вход по каналу:
echo -e "1\n2\n3\n" | test.sh &
, где 1
, 2
, и 3
значения для $nano
, $sec
и, соответственно $i
.
берут вход из файла:
test.sh < arguments.txt &
используют здесь строка:
test.sh <<<
Другая возможность состоит в том, чтобы передать те переменные как аргументы Вашему сценарию. В Вашем сценарии, вместо
read nano
read sec
read i
... можно использовать:
nano=$1
sec=$2
i=$3
Переменные $1
, $2
, $3
, и т.д. соответствуйте первому, второму, третьему, и т.д. аргументы на командной строке. Таким образом можно назвать сценарий как:
test.sh foo bar buz &
В сценарии, $1
будет содержать foo
, $2
будет содержать bar
, $3
будет содержать buz
, и т.д.