arp -n | grep -i ВАШ: MAC: ЗДЕСЬ | awk '{print $ 1}' | nslookup
Я почти уверен, что вам нужно запустить сервер имен в вашей локальной сети, чтобы это работало.
Используемая вами команда ps не имеет отношения к UNIX.
Использование key letters
вместо options
использовалось в BSD ps
, но это так и не вошло в стандарт. BSD даже использует ключевую букву h
не так, как вы могли ожидать.
Рекомендую использовать:
ps -p $$
Если вы хотите проверить, есть ли еще экземпляры этого скрипта, используйте:
myname=`basename $0`
pids=`pgrep -d, $myname`
ps -p $pids
Теоретически вам даже не нужно больше запускать ps
, достаточно будет проверить вывод pgrep
на наличие запятой.
Если вы хотите реализовать алгоритм блокировки файла и иметь оболочку, совместимую с POSIX, вы можете использовать:
set -o noclobber
:> /var/tmp/myscript
if [ $? -ne 0 ]; then
echo already running
exit 1
fi
... do some stuff
rm /var/tmp/myscript
Надежность этого зависит от того, реализует ли оболочка noclobber так, как это нравится POSIX. Некоторые оболочки могут не реализовать это атомарно, поэтому вам нужно знать, в порядке ли ваша оболочка.