`

shell—命令执行成功的判断

阅读更多
在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为后缀的文件,进行备份
分享到:
评论

相关推荐

    在python 中实现运行多条shell命令

    print("命令执行成功") ``` - **解析**:`subprocess.call`与`subprocess.Popen`类似,但会等待命令执行完毕,并返回命令的退出状态码。这使得我们可以根据返回值来判断命令是否成功执行。 #### 二、使用`os`模块...

    Java 调用 Linux shell 命令执行框架:sshxcute

    常见的办法是通过本地工具(例如 Putty)连接远程计算机,输入命令执行,但是当遇到需要集成这些任务到代码或者开发、测试框架中时,往往就没有很好的解决方案了。sshxcute 就是这样一个框架工具集,它基于 JSCH ...

    python调用shell命令

    `os.system()`用于执行Shell命令,但它不会返回任何结果,只能通过其返回值(通常为命令执行的状态码)判断命令是否成功执行。 ##### 代码示例: ```python import os # 执行dir命令 os.system("dir") ``` #####...

    shell命令解释器

    **Shell命令解释器**是Linux操作系统中的核心组件之一,它是一个用户与系统交互的界面,让用户能够通过输入命令来执行各种系统操作。在Linux的世界里,shell不仅是一个命令行接口,还是一个强大的脚本编程语言,允许...

    shell命令文档 中文版

    在IT领域,Shell命令是Linux和Unix操作系统中的一个强大工具,它允许用户通过文本界面与操作系统进行交互。这本书“shell命令文档 中文版”提供了一个全面的指南,涵盖了所有基本到高级的Shell命令,这对于系统管理...

    命令命令的执行

    本章将深入探讨如何利用shell命令进行高效的操作和自动化任务。 一、Shell命令基础 1. 命令行解释器:Shell是Linux中的命令行解释器,常见的有Bash(Bourne-Again SHell)、Sh、Csh、Zsh等。其中,Bash是目前最常用...

    linuxshell命令unixshell命令教程.rar

    这份"Linux Shell命令Unix Shell命令教程"PDF文件将涵盖上述知识,并可能包括更详细的实例和练习,帮助读者深入理解和掌握Shell命令的使用。通过阅读和实践,你将能够更加熟练地运用这些命令来管理Linux和Unix系统,...

    shell命令与定时任务

    #### Shell 命令与脚本基础 - **Shell 脚本环境变量**: - **系统环境变量**:位于`/etc/profile`文件中,适用于系统中的所有用户。 - **用户环境变量**:位于用户家目录下的`.bash_profile`文件中,仅适用于特定...

    PHP执行普通shell命令流程解析

    ...这些函数在默认情况下可能被禁用,因为它们...通过了解这些函数的工作原理和使用方式,开发者可以更有效地在PHP项目中集成shell命令执行的功能。在实际开发过程中,还应遵循最佳实践,以保证应用的安全性和可靠性。

    linuxshell命令unixshell命令教程

    本教程针对初学者,旨在深入讲解Linux Shell和Unix Shell命令的使用,帮助你快速掌握这两种系统的操作技巧。 首先,Shell是一个命令解释器,它将用户输入的命令解析并执行。在Linux和Unix中,常见的Shell有Bash...

    java调用shell命令并获取执行结果的示例

    Java调用Shell命令并获取执行结果的示例 在 Java 中调用 Shell 命令并获取执行结果是非常常见的操作,今天我们就来分享一个 Java 调用 Shell 命令并获取执行结果的示例。 Process 和 Runtime 类 在 Java 中,我们...

    shell命令处理过程正则表达式

    在IT领域,Shell命令是操作系统用户与Linux或Unix系统交互的主要工具。正则表达式(Regular Expression)则是处理文本的强大工具,广泛应用于数据提取、文本搜索、替换等场景。结合标题"shell命令处理过程正则表达式...

    Linux/unix shell 命令和编程详细 3

    本文将深入讲解Linux/Unix Shell命令和编程,包括AWK和Perl的基础知识,帮助你提升脚本编程能力。 一、Shell命令详解 1. 文件和目录操作: - `ls`:列出目录内容。 - `cd`:改变当前工作目录。 - `mkdir`:创建...

    常用shell编程命令

    shell编程命令详解 shell编程是 Linux 和 Unix 操作系统中...shell 编程命令是 Linux 和 Unix 操作系统中一种强大的编程语言,通过学习 shell 编程命令,可以编写脚本以自动执行各种任务,提高工作效率和自动化程度。

    Java代码执行shell命令的实现

    "Java代码执行shell命令的实现" Java代码执行shell命令的实现是指在Java程序中调用操作系统的shell命令,实现与操作系统交互的功能。下面将详细介绍Java代码执行shell命令的实现方法。 环境准备 在执行shell命令...

    UNIX and Linux shell命令,shell编程资料,Per中文件手册

    1. **Shell命令**:Shell命令是用户与操作系统进行交互的基本方式,它允许用户执行系统任务,如文件操作、进程控制和系统管理。常见的UNIX/Linux Shell有Bash(Bourne-Again SHell)、C-Shell(C-样式的Shell)以及...

    linux平台shell命令大全

    本文将全面介绍Linux平台上的shell命令,帮助你深入理解和掌握shell知识。 一、基础命令 1. **ls**:列出目录内容。例如,`ls -l`显示详细信息,`ls -a`显示包括隐藏文件在内的所有文件。 2. **cd**:改变当前...

    java调用shell(包含有参数的调用)

    在Java中,我们可以使用`Runtime.getRuntime().exec()`方法来执行Shell命令。如果需要传递参数给Shell脚本,可以在执行的命令字符串中加入相应的参数。例如,`exec("sh xx.sh arg1 arg2")`语句中的`arg1`和`arg2`...

    Shell编程和Unix命令.pdf

    shell 命令可以用来执行各种操作,例如创建文件、更改权限、设置符号链接等。 文件安全实践 文件安全实践是 Unix 操作系统安全的一个重要方面。文件安全实践包括设置权限位、更改文件属主、设置符号链接等。 本...

Global site tag (gtag.js) - Google Analytics