写 shell 使用 if 留个文
说明:
下面可学习到
1. 当 sh 文件接受到 2个,1个,或无参数时 解决办法(注意 $1 要 "$1" 这样使用 )
2. sh 中 参数赋值 _var = $(...)
3. 取得当前时间 $(date + %Y - %m - %d ) 前天时间 $(date -d '-1 day' +%Y-%m-%d)
有那个 能帮我下 if and 使用
比如:
说明:
下面可学习到
1. 当 sh 文件接受到 2个,1个,或无参数时 解决办法(注意 $1 要 "$1" 这样使用 )
2. sh 中 参数赋值 _var = $(...)
3. 取得当前时间 $(date + %Y - %m - %d ) 前天时间 $(date -d '-1 day' +%Y-%m-%d)
if
[
-
n "$
2"
] ; then
mydate = $ 1
_copyright =/ data / ftp_share / copyright / $ 2 - copyright . 000
_walkman =/ data / ftp_share / copyright / $ 2 - walkman . 000
_fullsong =/ data / ftp_share / copyright / $ 2 - fullsong . 000
_shaker =/ data / ftp_share / copyright / $ 2 - shaker . 000
_color =/ data / ftp_share / copyright / $ 2 - color . 000
elif [ - n "$ 1" ] ;then
mydate = $ 1
_copyright = $(python findIncBizDataFile . py copyright $ 1 )
_walkman = $(python findIncBizDataFile . py walkman $ 1 )
_fullsong = $(python findIncBizDataFile . py fullsong $ 1 )
_shaker = $(python findIncBizDataFile . py shaker $ 1 )
_color = $(python findIncBizDataFile . py color $ 1 )
else
# ydate=$(date -d '-1 day' +%Y-%m-%d)
mydate = $(date + %Y - %m - %d )
_copyright = $(python findIncBizDataFile . py copyright)
_walkman = $(python findIncBizDataFile . py walkman)
_fullsong = $(python findIncBizDataFile . py fullsong)
_shaker = $(python findIncBizDataFile . py shaker)
_color = $(python findIncBizDataFile . py color)
fi;
if 参数说明
mydate = $ 1
_copyright =/ data / ftp_share / copyright / $ 2 - copyright . 000
_walkman =/ data / ftp_share / copyright / $ 2 - walkman . 000
_fullsong =/ data / ftp_share / copyright / $ 2 - fullsong . 000
_shaker =/ data / ftp_share / copyright / $ 2 - shaker . 000
_color =/ data / ftp_share / copyright / $ 2 - color . 000
elif [ - n "$ 1" ] ;then
mydate = $ 1
_copyright = $(python findIncBizDataFile . py copyright $ 1 )
_walkman = $(python findIncBizDataFile . py walkman $ 1 )
_fullsong = $(python findIncBizDataFile . py fullsong $ 1 )
_shaker = $(python findIncBizDataFile . py shaker $ 1 )
_color = $(python findIncBizDataFile . py color $ 1 )
else
# ydate=$(date -d '-1 day' +%Y-%m-%d)
mydate = $(date + %Y - %m - %d )
_copyright = $(python findIncBizDataFile . py copyright)
_walkman = $(python findIncBizDataFile . py walkman)
_fullsong = $(python findIncBizDataFile . py fullsong)
_shaker = $(python findIncBizDataFile . py shaker)
_color = $(python findIncBizDataFile . py color)
fi;
- –b 当file存在并且是块文件时返回真
- -c 当file存在并且是字符文件时返回真
- -d 当pathname存在并且是一个目录时返回真
- -e 当pathname指定的文件或目录存在时返回真
- -f 当file存在并且是正规文件时返回真
- -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
- -h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效
- -k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真
- -p 当file存在并且是命令管道时返回为真
- -r 当由pathname指定的文件或目录存在并且可读时返回为真
- -s 当file存在文件大小大于0时返回真
- -u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真
- -w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
- -o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。
UNIX Shell 里面比较字符写法:
- -eq 等于
- -ne 不等于
- -gt 大于
- -lt 小于
- -le 小于等于
- -ge 大于等于
- -z 空串
- = 两个字符相等
- != 两个字符不等
- -n 非空串
有那个 能帮我下 if and 使用
比如:
if
[
-
z ]
&&
[
-
z ]; then echo
11
;
else
echo
22
; fi;
结果 11 (正确)
if [ - n 1 ] && [ - n ]; then echo 11 ; else echo 22 ; fi;
结果 11 (错误)
这是 不能理解的 地方,
if [ - n 1 ] && [ - n '' ]; then echo 11 ; else echo 22 ; fi;
或
if [ - n 1 ] && [ - n "" ]; then echo 11 ; else echo 22 ; fi;
结果 22 (正确)
本文转自博客园刘凯毅的博客,原文链接:shell if 使用,如需转载请自行联系原博主。
结果 11 (正确)
if [ - n 1 ] && [ - n ]; then echo 11 ; else echo 22 ; fi;
结果 11 (错误)
这是 不能理解的 地方,
if [ - n 1 ] && [ - n '' ]; then echo 11 ; else echo 22 ; fi;
或
if [ - n 1 ] && [ - n "" ]; then echo 11 ; else echo 22 ; fi;
结果 22 (正确)