Giriş
Açıklaması
şöyle. [ ...] test işlemi sadece değişkenler için kullanılır.
[ .. ] is not part of shell syntax like if statements. It is not equivalent to parentheses in C-like languages, if (foo) { bar; }, and should not be wrapped around commands to test.
[ is just regular command, like whoami or grep, but with a funny name (see ls -l /bin/[). It's a shorthand for test.
If you want to check the exit status of a certain command, use that command directly.
If you want to check the output of a command, use "$(..)" to get its output, and then use test or [/[[ to do a string comparison:
Örnek
Değişken kullanmak için şöyle
yaparız.
#!/bin/bash
COUNTER=0
while [ "$COUNTER" -lt 10 ] && ps aux | grep -q "[r]elayevent.sh" ; do
sleep 3
let COUNTER+=1
done
Örnek
Şu kod, ps alt komutu [...] içinde kullandığı için hata
verir.
COUNTER=0
while [ ps aux | grep "[r]elayevent.sh" ] && [ "$COUNTER" -lt 10 ]; do
sleep 3
let COUNTER+=1
done
Örnek
Aynı değişkeni iki farklı değerler karşılaştırmak için şöyle
yaparızwhile [ "$choice" != "yes" ] && [ "$choice" != "no" ]
Örnek
Sonsuz döngü kurmak için şöyle
yaparız.
#!/bin/bash
while true; do
echo "something" >> bash.txt
done
Örnek
Sonsuz döngü kurmak için şöyle
yaparız. Bu sefer
true yerine built-in command olan ":" kullanılıyor.
while :
do
something
done
Şöyle
yaparız.
while :
do
sleep 10
done
Örnek
Komutun exit kodunu kullanarak dosyanın tüm satırlarını okumak için şöyle
yaparız.
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "Text read from file: $line"
done < "$1"
Aynı satırları silmek için
buradaki kod kullanılabilir.
Örnek
Break ile çıkmak için şöyle
yaparız.
#!/bin/bash
while true
do
echo "Please input anything here: "
read INPUT
if [ `expr $INPUT % 5` -eq 0 ]; then
echo "you entered wrong"
break
else
echo "you entered right"
fi
done
Örnek
Script'e verilen parametreleri parse etmek için şöyle
yaparız.
while getopts ":d:f:p:e:" o; do
case "${o}" in
d)
SDOMAIN=${OPTARG}
;;
f)
FROM=${OPTARG}
;;
p)
PAGER=${OPTARG}
;;
e)
DESTEXT=${OPTARG}
;;
*)
show_usage
;;
esac
done