```bash mydir=$(pwd) mydir=`pwd` echo $mydir =========================== =========================== -z # строка пуста -n # строка не пуста =, (==) # строки равны ! = # строки не равны ! # отрицание логическоно выражения -a, (&&) # логическое И -o, (||) # логическое ИЛИ var1=(( 5 + 5)) -eq = -ge >= -gt > -le <= -lt < -ne != if [ $val - gt 5] then elif else fi /dev/pts/$i IFS=$'\n' # переназначение переменной среды на только перевод строки IFS=: ``` ```sh # Где я? mydir=`pwd` mydir=$(pwd) echo $mydir # Математика: var1=$(( 5 + 5 )) echo $var1 # IF-THEN-ELSE-ELIF user=likegeeks if grep $user /etc/passwd then echo "The user $user Exists!" else echo "The user $user doesn't exist" elif grep $user /usr/bin then echo "jhgvhjlgvljhgljhg" fi ``` ```sh # Как в Linux, так и в OS X grep возвращает код выхода, поэтому легко проверить, был ли процесс найден или нет:** #!/bin/bash ps cax | grep httpd > /dev/null if [ $? -eq 0 ]; then echo "Process is running." else echo "Process is not running." fi # Кроме того, если вам нужен список PID, вы также можете легко выполнить grep для них:** ps cax | grep httpd | grep -o '^[ ]*[0-9]*' # Чей вывод одинаков в Linux и OS X:** 3519 3521 3523 3524 # Вывод следующего представляет собой пустую строку, что делает этот подход безопасным для процессов, которые не запущены:** echo `ps cax | grep aasdfasdf | grep -o '^[ ]*[0-9]*'` # Этот подход подходит для написания простого теста с пустой строкой, а затем даже для перебора обнаруженных PID. #!/bin/bash PROCESS=$1 PIDS=`ps cax | grep $PROCESS | grep -o '^[ ]*[0-9]*'` if [ -z "$PIDS" ]; then echo "Process not running." 1>&2 exit 1 else for PID in $PIDS; do echo $PID done fi # Вы можете протестировать ее, сохранив в файл (с именем "running") с разрешениями на выполнение (chmod + x running) и выполнив его с параметром: `./running "httpd"` #!/bin/bash ps cax | grep httpd if [ $? -eq 0 ]; then echo "Process is running." else echo "Process is not running." fi ```