Добро пожаловать в unix.stackexchange!
xargs
здесь твой друг.
Но сначала некоторые изменения в вашем скрипте:
$ cat test.sh
#!/bin/bash
echo "# This script checks if a remote device is alive"
va=$1 # passing it as an argument is the right thing to do here
echo "Checking Device "$va
if [ $(nc -z "$va" 22; echo $?) -eq 0 ]; then
echo $va" is Online !"
else
echo "Cannot proceed with remote connection device "$va" is Offline !"
fi
И теперь xargs
магия(%
будет заменяться каждым адресом при каждом звонке):
$ nmap -sP 172.20.10.1-2 | awk '/is up/ {print up}; {gsub (/\(|\)/,""); up = $NF}' |xargs -I % bash test.sh %
# This script checks if a remote device is alive
Checking Device 172.20.10.1
Cannot proceed with remote connection device 172.20.10.1 is Offline !
# This script checks if a remote device is alive
Checking Device 172.20.10.2
Connection to 172.20.10.2 port 22 [tcp/ssh] succeeded!
172.20.10.2 is Online !
Вы также можете заменить bash test.sh %
на echo ">>>%<<<"
, чтобы поэкспериментировать, что тогда произойдет.
Однако ответ Ipor Sircer короче для реализации.
Но, как всегда в Unix :, для каждой проблемы есть множество решений
# Do a check
desktop-file-validate ${HOME}/.local/share/applications/*.desktop
# List apps pinned to dock
gsettings get org.gnome.shell favorite-apps
# Pin new list to dock after editing
gsettings set org.gnome.shell favorite-apps "['doublecmd.desktop', 'textadept.desktop', 'notherapp.desktop', 'okular.desktop']"