在shell 中可以使用 echo $? 的结果来判断上一条命令是否执行成功,成功为0,否则非0.
分号;用来间隔多个依次执行的命令。
如果要使两个命令有关联,如果前面的执行正确就接着执行后面的,否则就略过,可以用&&来完成。
woody@linux:~$ ls /tmp && touch /tmp/testfile
gconfd-woody scim-helper-manager-socket-woody ssh-IBhPBd4873
mplayhfvs8X scim-panel-socket:0-woody
orbit-woody scim-socket-frontend-woody
woody@linux:~$ ls /tmp
gconfd-woody scim-helper-manager-socket-woody ssh-IBhPBd4873
mplayhfvs8X scim-panel-socket:0-woody testfile
orbit-woody scim-socket-frontend-woody
上面先用ls 判断目录tmp是否存在,如果存在就创建testfile文件,否则就不创建。
|| 与&&相反,如果执行错误才会执行后面的命令。
可以用来完成类似这样的功能: 当某个文件不存在的时候就去创建那个文件
woody@linux:~$ ls haha || touch haha
ls: cannot access haha: No such file or directory
woody@linux:~$ ls
Backup doc file1 haha playlist wallpapers
Desktop Downloads file2 linux_c_src vbox_share xrgsu
woody@linux:~$
例子:
用ls 测试/tmp/heihei 是否存在, 存在则显示exist 否则显示 not exist
woody@linux:~$ ls /tmp/heihei && echo "exist"||echo "not exist"
ls: cannot access /tmp/heihei: No such file or directory
not exist
上面ls 不成功, 则echo "exist" 不执行,返回值是ls的返回值(失败),这样||后面的指令执行。
woody@linux:~$ touch /tmp/heihei
woody@linux:~$ ls /tmp/heihei && echo "exist"||echo "not exist"
/tmp/heihei
exist
woody@linux:~$
上面的ls 执行成功,接着成功执行echo "exist" ,||后面不执行。
但是不能写成 ls /tmp/heihei ||echo "not exist" && echo "exist"
因为如果ls失败, 则echo "not exist" , 但是echo执行成功, 则 &&后面的echo "exist" 会接着执行。这样就同时显示not exist exist 了。
记住命令是顺序执行的就可以了!
备份目录下面文件
#!/bin/bash
case $# in //$#表示转入参数的个数,sh bak.sh ./ .sh 有二个参数./和.sh
0) // 参数为空时,提示错误,并且退出
echo "message:param is wrong"
exit $E_BADARGS;;
esac
string=" "
cd $1 //进入传入的目录
//备份子目录中的文件时,参数也要接上
if [ $# -gt "1" ]
then
string=$string" "$2
fi
for filename in * //读取当前目录中的文件
do
if [ -d "$filename" ] //判断一下是不是目录
then
/bin/sh /home/zhangy/test/$0 $(pwd)/$filename $string //是目录的话,进行递归
else
if [ $# -gt "1" ] && [ ${filename:(-${#2})} = $2 ] //指定备份什么样的文件
then
cp $filename $filename"bak"
fi
if [ $# -eq "1" ]
then
cp $filename $filename"bak" //没指定,备份目录下面的所有文件
fi
fi
done
exit 0
bak.sh ./ .sh 这句话的意思是把当前目录(以及子目录)中的所有以.sh为后缀的文件,进行备份
分享到:
相关推荐
常见的办法是通过本地工具(例如 Putty)连接远程计算机,输入命令执行,但是当遇到需要集成这些任务到代码或者开发、测试框架中时,往往就没有很好的解决方案了。sshxcute 就是这样一个框架工具集,它基于 JSCH ...
1.在shell脚本执行python脚本时,需要通过python脚本的返回值来判断后面程序要执行的命令 例:有两个py程序 hello.py 代码如下: def main(): print “Hello” if __name__==’__main__’: main() world.py def ...
shell自动化脚本,自动判断文件夹(目录)是否存在,如不存在自动创建,可执行,下载可测试
(1)判断/home下是否存在一个的目录文件;如果不存在则转(2)继续往下执行;如果存在则判断该目录下是否存在一个.c文件,如果不存在则转...(5)在shell脚本中写好编译命令 (6)在shell脚本中运行程序,输出相应内容
【shell脚本】shell脚本之条件判断if、for与while循环(shell脚本基础学习二) shell中的if 单分支 if 条件测试 ;then 命令序列 fi 双分支 if 条件测试 ;then 命令序列1 else 命令序列2 fi 多分支 if 条件测试 ;...
1、 首先利用readline()函数读到用户输入的shell命令,采用一个数组来保存shell命令,数组有固定的大小。 2、 在main()函数中根据字符串中是否存在 "&" 字符判断是否为后台进程。如果是后台命令则判断是否是多条...
ps -ef |grep java|grep
代码如下: #!/bin/bash port=”80″ restart=”/etc/init.d/httpd restart” EMAIL=”/bin/echo selboo | mutt -s “重新启动...$EMAIL exit $? } exit 0 您可能感兴趣的文章:linux使用管道命令执行ps获取cpu与内
项目六 Shell命令输出 112 [学习目标] 112 任务6.1 Shell echo命令 113 任务6.2 Shell printf命令 116 任务6.3 Shell test命令 119 任务6.4 Shell案例:查看系统资源使用情况 122 练习(每题20分,共计100分) 125 ...
判断对象是不是null 常用格式化日期 添加全局共享变量数据模型 直接调用java对象的方法 字符串处理(内置方法) 在模板里对sequences和hashes初始化 注释标志 sequences内置方法 hashes内置方法
4 字符串表达式(判断条件命令IF) 10 5. #SLEEP等待 10 6. #TEE执行结果复制保存 10 七、数组生成方法 10 1. #SEQ方法生成 10 2. 通过内部{BEGIN..END}生成 11 3. 以性能比较 11 4. 数组 11 八、LINUX系统常用配置...
# 检查通过sh命令执行的shell脚本是不是还在执行当中,避免重复执行. # 把这段代码放在需要保证唯一性的程序头部即可 # 注意,如果直接把此脚本放到cron里面执行的话,必须再grep -v ” -c sh “以排除由cron产生的...
更明白地来说,shell script就像早期dos年代的.bat,最简单的功能就是将许多指令汇整写一起,让使用者很容易地就能够一个操作执行多个命令,而shell script更是提供了数组,循环,条件以及逻辑判断等重要功能,让...
shell脚本是一个包含shell命令的ASCII码文件,特点是可以用文本处理工具查看如more 脚本名 来讯速的判断它是不是脚本.如果是命令的话则显示乱码 而命令则是可执行的二进制代码文件 Shell脚本可理解为shell命令与应用...
您告诉它一个命令,它执行它并发布实时输出。 您可以通过回复输出消息将输入发送到命令。 这是一个相当复杂的示例,因为它实际上在命令中显示为终端,解释转义序列,并且如果触摸了它们的行,它将更新消息。 这...
2. 根据命令的执行结果状态来判断是否通 $? 3. 根据逻辑和语法结构来编写脚本(条件判断或者流程控制) 步骤: vim ping.sh #!/bin/bash # Name:ping.sh # Path:/shell02/ # Usage:/shell02/ping.sh # ... #获取远程...
例如在Shell脚本中 在一行中执行多个命令可以使用;进行将其分割 例如: cd /usr/local/ ; ls 两侧有没有空格都没有关系 ;仅仅是用于命令的排序 没有任何逻辑关系 命令排序 && 在Shell脚本中 想让语句拥有简单的逻辑...
#然后可以通过以下命令执行 #相对路径,或者绝对路径 ./start.sh #一个脚本范例,&& 表示的是逻辑判断,表示前面执行成功才会执行 #当然也可以用分号,但是不代表逻辑判断,前面执行成功与否都会执行 # || 代表逻辑...
文章目录基础篇一、Shell概述二、脚本定义与执行三、shell中的变量四、运算符五、条件判断六、流程控制七、read读取控制台输入八、函数九、Shell工具 基础篇 一、Shell概述 shell是一个功能比较强大的脚本语言,易...
26.iTELLIN示例十:判断操作是否成功 70 27.iTELLIN示例十一:封装创建一个组的函数 71 28.iTELLIN示例十二:封装创建一个用户的函数 72 29.iTELLIN示例十三:判断一个字符串是否是正整数 74 30.iTELLIN示例十...