shell shell脚本if嵌套中ifuser什么意思啊

[-a file] 如果file存在则为真&
不过貌似有时候-a表示为and:条件与
[-b file] 如果file存在且是一个块特殊文件则为真&
[-c file] 如果file存在且是一个字特殊文件则为真&
[-d file] 如果file文件存在且是一个目录则为真&
-d前的!是逻辑非&
if [ ! -d $lcd_path/$par_date ]&
表示后面的那个目录不存在,则执行后面的then操作&
[-e file] 如果file文件存在则为真&
[-f file] 如果file存在且是一个普通文件则为真&
[-g file] 如果file存在且已经设置了SGID则为真(SUID 是 Set User ID, SGID 是 Set Group ID的意思)&
[-h file] 如果file存在且是一个符号连接则为真&
[-k file] 如果file存在且已经设置粘制位则为真&
当一个目录被设置为&粘制位&(用chmod a+t),则该目录下的文件只能由&
一、超级管理员删除&
二、该目录的所有者删除&
三、该文件的所有者删除&
也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。&
具体例子如下:&
#ls -dl /tmp&
drwxrwxrwt 4 root&&& root& .........&
注意other位置的t,这便是粘连位。&
[-p file] 如果file存在且是一个名字管道(F如果O)则为真&
管道是linux里面进程间通信的一种方式,其他的还有像信号(signal)、信号量、消息队列、共享内存、套接字(socket)等。&
[-r file] 如果file存在且是可读的则为真&
[-s file] 如果file存在且大小不为0则为真&
[-t FD] 如果文件描述符FD打开且指向一个终端则为真&
[-u file] 如果file存在且设置了SUID(set userID)则为真&
[-w file] 如果file存在且是可写的则为真&
[-x file] 如果file存在且是可执行的则为真&
[-O file] 如果file存在且属有效用户ID则为真&
[-G file] 如果file存在且属有效用户组则为真&
[-L file] 如果file存在且是一个符号连接则为真&
[-N file] 如果file存在and has been mod如果ied since it was last read则为真&
[-S file] 如果file存在且是一个套接字则为真&
[file1 –nt file2] 如果file1 has been changed more recently than file2或者file1 exists and file2 does not则为真&
[file1 –ot file2] 如果file1比file2要老,或者file2存在且file1不存在则为真&
[file1 –ef file2] 如果file1和file2指向相同的设备和节点号则为真&
[-o optionname] 如果shell选项“optionname”开启则为真&
[-z string] “string”的长度为零则为真&
[-n string] or [string] “string”的长度为非零non-zero则为真&
[sting1==string2] 如果2个字符串相同。“=”may be used instead of “==”for strict posix compliance则为真&
[string1!=string2] 如果字符串不相等则为真&
[string1&string2] 如果“string1”sorts before“string2”lexicographically in the current locale则为真&
[arg1 OP arg2] “OP”is one of –eq,-ne,-lt,-le,-gt or –ge.These arithmetic binary oprators return true if “arg1”is equal to,not equal to,less than,less than or equal
to,greater than,or greater than or equal to“agr2”,respectively.“arg1”and “agr2”are integers.&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:171次
排名:千里之外shell脚本练习题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
shell脚本练习题
上传于||文档简介
&&里​面​有0​几​个​s​h​e​l​l​脚​本​的​实​例
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩18页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Shell脚本if else语句小结
投稿:junjie
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了Shell脚本if else语句小结,总结了Shell脚本中的if控制语句和其它语言的不同,常见的3种写法等,需要的朋友可以参考下
和Java、PHP等语言不一样,sh的流程控制不可为空,如:
if (isset($_GET["q"])) {
&&& search(q);
&&& //do nothing
在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else,就像这样:
if condition
&&& command1
&&& command2
&&& commandN
当然,也可以写成一行(适用于终端命令提示符),像这样:
if test $[2*3] -eq $[1+5]; then echo 'The two numbers are equal!';
末尾的fi就是if倒过来拼写,后面还会遇到类似的。
if else格式
if condition
&&& command1
&&& command2
&&& commandN
&&& command
if else-if else格式
if condition1
&&& command1
elif condition2
&&& command2
&&& commandN
if else语句经常与test命令结合使用,如下所示:
num1=$[2*3]
num2=$[1+5]
if test $[num1] -eq $[num2]
&&& echo 'The two numbers are equal!'
&&& echo 'The two numbers are not equal!'
The two numbers are equal!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具SHELL脚本if语句
一:条件测试
test 条件表达式 或 [ 条件表达式
2.文件测试:
-d:测试是否为目录
-f:测试是否为文件
-e:测试目录或文件是否存在
-r:测试当前用户是否有读取权
-w:测试当前用户是否有写入权限
-x:测试当前用户是否有执行权限
例:测试/etc/hosts文件是否存在.如图
2.数值比较:
-ne:不相同
-le:小于等于
-ge:大于等于
4.字符串比较:
=:第一个字符串和第二个字符串相等
!=:第一个字符串和第二个字符串不相等
-z:检查字符串是否为空
5.逻辑测试:
&&:逻辑与,表示前后2个条件都成立时,测试命令返回值为0(结果成立)
||:逻辑或的意思,表示前后2个条件有其中一个满足条件时,测试命令返回值为0(结果成立)
!:逻辑否,当条件不成立时,测试命令返回值为0(结果成立)
二:if条件语句
1.单分支if语句:只在"条件成立"才执行相应的代码操作,否则不做任何操作.
if 条件测试操作
例如:编写个脚本,测试系统中是否有/media/cdrom这个目录,如果没有则创建.
#!/bin/bash
mulu="/media/cdrom"
if [ ! -d $mulu ] ; then
&& mkdir -p
2.多分支if语句:针对单分支条件不成立时,执行另一个操作.
if 条件测试操作
then&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//条件成立执行命令序列1
&& 命令序列1
else&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//条件不成立则执行命令序列2
命令序列2&&&&&&&&&&&
例:编写一个连通性测试小脚本.根据ping结果显示不同的提示,成功显示chenggong
失败显示shibai.如下:
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &&
/dev/null&&&&&&&
//此操作不显示在屏幕上
if [ $? -eq 0
]&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//上面条件成立则运行下面命令
echo "chenggong"
else&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//不成立则运行下面的命令
3.多分支if语句:对多个互斥的条件执行不同的操作.
if 条件测试操作1
&& 命令序列1
&& 命令序列2
&& 命令序列3
例:编写1个成绩小脚本,90-100显示优秀,70-80显示一般,其他不及格.如
#!/bin/bash
read -p "请输入你的成绩" chengji
if [ $chengji -ge 90 ] && [ $chengji -le 100
& echo "你的成绩很优秀"
elif [ $chengji -ge 70 ] && [ $chengji -lt 90
"你的成绩一般"
echo"你的成绩不级合格"
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。shell脚本中${1:-}是什么意思?_linux吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:156,352贴子:
shell脚本中${1:-}是什么意思?收藏
想自己写一个service脚本,通过对比apache和tomcat的service脚本,决定自己仿照写一个。发现这段脚本:log_failure_msg () {
if [ -n "${1:-}" ]; then
log_begin_msg $@ "..."
log_end_msg 1 || true}这里if [ -n "${1:-}" ]中的"${1:-}"怎么理解?
1 $1是函数的第一个参数2 看替换的定义,${varname:-word},如果varname存在且非null,则返回其值;否则,返回word。用途:如果变量未定义,则返回默认值。3 上述替换中的word是空,即,如果1没有定义,就返回空所以,${1:-}的意思就是说,如果函数有第一个参数,就返回这个参数,如果没有,就返回空。其实我们平常都不写得这么麻烦,就直接说 [ -n "$1" ],这个脚本写成这个样子,大概是为了严谨?我学习一下先,说不定还真是我遗漏了什么。
可以看看shell里的变量替换 讲的就是这个。
fisqldir=/home/gzapp/impdata/sql/daycd $sqldirfilelist=$(ls
*.sql)echo run day sqlfor file in $filelistdoif [ -f $file ]then echo
sqlplus /nolog @$file sysdate-1fi
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 shell脚本中的if语句 的文章

 

随机推荐