не знаю зачем это нужно, но тогда либо через файл передавать, чтобы скрипт его считывал и уже в зависимости от содержания выполнял действия, либо просто убить:
text
#!/bin/bash
declare -i a=0 b=0
startic() {
while ((a<100));do
sleep 1
echo $$
((a++))
done
}
#запускаем процесс
startic &
#определяем pid процесса
pid=$!
while ((b<5));do
sleep 2
echo DD=$$
#убиваем процесс
kill $pid 2>/dev/null
((b++))
done
не знаю зачем это нужно, но тогда либо через файл передавать, чтобы скрипт его считывал и уже в зависимости от содержания выполнял действия, либо просто убить:
не знаю зачем это нужно, но тогда либо через файл передавать, чтобы скрипт его считывал и уже в зависимости от содержания выполнял действия, либо просто убить:
text
#!/bin/bash
declare -i a=0 b=0
startic() {
while ((a<100));do
sleep 1
echo $$
((a++))
done
}
#запускаем процесс
startic &
#определяем pid процесса
pid=$!
while ((b<5));do
sleep 2
echo DD=$$
#убиваем процесс
kill $pid 2>/dev/null
((b++))
done
Весь прикол в том что это не работает, вот скрипт с отладкой:
text
#!/system/bin/bash -x
func()
{
local a=0
while [ "$a" -lt 10 ]; do
echo $a
let a+=1
new=$pid
echo $new
if [ "$a" -eq 5 ]; then
echo $pid
kill $pid
fi
sleep 1
done
}
Странно было бы если заработало...
Функция запускается в новом процессе bash, по этому pid в саму функцию не передаётся, так как присваивается после запуска функции. Для выхода из функции используется команда return.
Выше пример был для linux, в андроид нет /dev/null
Вот пример, у меня работает на termux норм.
text
#!/data/data/com.termux/files/usr/bin/bash
declare -i a=0 b=0
startic() {
while ((a<100));do
sleep 1
echo $$
((a++))
done
}
#запускаем процесс
startic &
#определяем pid процесса
pid=$!
echo pid=$pid
while ((b<5));do
sleep 2
echo DD=$$
#убиваем процесс
((b++))
done
kill $pid
Кстати под kitkat норм роботает terminal ide, в её состав входит bash mc и многое...
Соединить комп с планшетом можно с помощью telnet, в результате будет работать норм консоль на компе.
Странно было бы если заработало...
Функция запускается в новом процессе bash, по этому pid в саму функцию не передаётся, так как присваивается после запуска функции. Для выхода из функции используется команда return.
Выше пример был для linux, в андроид нет /dev/null
Вот пример, у меня работает на termux норм.
text
#!/data/data/com.termux/files/usr/bin/bash
declare -i a=0 b=0
startic() {
while ((a<100));do
sleep 1
echo $$
((a++))
done
}
#запускаем процесс
startic &
#определяем pid процесса
pid=$!
echo pid=$pid
while ((b<5));do
sleep 2
echo DD=$$
#убиваем процесс
((b++))
done
kill $pid
Кстати под kitkat норм роботает terminal ide, в её состав входит bash mc и многое...
Соединить комп с планшетом можно с помощью telnet, в результате будет работать норм консоль на компе.
/dev/null в андроиде есть, это же мини линукс
[console]
ls -l /dev/null
crw-rw-rw- root root 1, 3 2017-06-27 17:26 null
[/console]
Termux пооный отстой так как на кит кат не работает.
Короче я поставил LinuxDeploy и а нём установил debian, теперь я любые проги могу ставить и это намного лучше чем просто терминал.
Ну да проверил, есть. Только linux его тяжело назвать, если только не из за ядра.
"Moritto" написал:
Termux пооный отстой так как на кит кат не работает.
Короче я поставил LinuxDeploy и а нём установил debian, теперь я любые проги могу ставить и это намного лучше чем просто терминал.
На много лучше иметь непосредственно linux рукой.
Ну удачи!