Posts Tagged bash
Чакалене на IP/host за наличие на пинг
Съвсем скоро (да кажем, преди 10 минути) ми се наложи да чакам да се появи пинг към дадено IP. За целта си написах shell-скриптчето, показано по-долу, което да ми “каже” нещо, в момента, в който се появи ping към съответното IP. Някой може да го намери за полезно:
dimitardimitrov@Midori:~$ cat monitor-host.sh #!/bin/bash if [ "$#" -lt 1 ] then echo "Usage: $0 host.to.monitor" exit 1 fi host="$1" while true do ping -c 1 $host if [ "$?" -eq "0" ] then say The host is now online! I repeat: "The host is now online!". exit fi sleep 1 done
За да работи, е необходимо да имате команда say, която да прави каквото се очаква :) Може да бъде заменена и с нещо друго, разбира се. Чувствайте се свободни да ползвате това парче “код” както искате.
mv, както и rm и cp
Никога не ползвайте mv * ../* на UNIX/Linux система, ако не искате да преместите всички файлове от текущия каталог, както и тези от родителския каталог, в директория от родителския каталог! Shell-ът, който използвате (/bin/sh, /bin/bash, …) ще замести * с всички файлове и каталози от текущия каталог, а ../* с всички файлове и каталози от родителския каталог, като при това положение mv ще премести целия този списък в последния си аргумент, който трябва да бъде съществуващ каталог (вероятността това да е изпълнено не е малка.)
За повече информация: man mv и man sh…
Послеслов: Забравих да спомена, винаги, ама ВИНАГИ се пазете от сянката си, че няма да усетите как сами ще си навредите тъй, както никой друг не би могъл да ви навреди – слагайте синоними от този род в стартовия си, профилиращ shell-а, скрипт (~/.bash_profile за bash, ~/.cshrc за csh и т.н.):
alias rm rm -i alias cp cp -i alias mv mv -i