2016年2月4日 星期四

[Linux] Shell script if

常用的系統符號變數有:
$#  Number of parameter
$*  All the parameter
$?  Exit status of previous command(前一個指令執行後的回傳值,0為執行成功)
$$  PID of this shell's process
$!   PID of the most recently started background

Shell script的if寫法如下:
if [...]; then
    ...
else
    ...
fi

其中[...]可以為:

[ string1 = string2 ] string1 and string2 are equal

[ string1 != string2 ] string1 and string2 are not equal

[ string1 \< string2 ] string1 is lexically less than string2 (e.g. 'a' is less than 'b')

[ string1 \> string2 ] string1 is lexically greater than string2 (e.g. 'b' is greater than 'a')

[ -z string ] string is zero (e.g. a empty string)

[ -n string ] string is nonzero (e.g. a VAR string)

[ -e file ] file exists

[ -f file ] file is a file

[ -d file ] file is a directory

[ -c file ] file is a character device

[ -b file ] file is a block device

[ -p file ] file is a named pipe

[ -s file ] file is not empty

[ -k file ] file's sticky bit is set

[ -S file ] file is a socket

[ -L file ] file is a symbolic link

[ -r file ] file is readable by user

[ -w file ] file is writeable by user

[ -x file ] file is executeable by user

[ -O file ] file is owner by user

[ -G file ] file is group owned by a greoup

[ -u file ] file has its set user ID bit set

[ -g file ] file has its group user ID bit set

[ file1 -nt file2 ] file1 is newer than file2

[ file1 -ot file2 ] file1 is older than file2

[ file -ef file2 ] file1 is another name for file2

[ n1 -eq n2 ] true if integer n1 = integer n2

[ n1 -ne n2 ] true if integer n1 <> n2

[ n1 -gt n2 ] true if n1 > n2

[ n1 -ge n2 ] true if n1 >= n2

[ n1 -lt n2 ] true if n1 < n2

[ n1 -le n2 ] true if n1 <= n

沒有留言:

張貼留言