linux shell命令执行顺序的控制方法_linux shell

&&
命令1 && 命令2:如果这个命令执行成功&&那么执行这个命令。
[jb]/usr/xxxx/ytcclb>ls -l test.sql
-rwxr--r-- 1 xxxx group 225 Nov 15 14:12 test.sql
[jb]/usr/xxxx/ytcclb>cp test.sql test.bak && echo "coping file ok!"
coping file ok!
[jb]/usr/xxxx/ytcclb>ls -l test.*
-rwxr--r-- 1 xxxx group 225 Nov 15 17:48 test.bak
-rwxr--r-- 1 xxxx group 225 Nov 15 14:12 test.sql

移动文件,删除目录:

复制代码 代码如下:

$ mv /apps/bin /apps/dev/bin && rm -r /apps/bin

将文件排序,输出到另一个文件,成功后打印:

复制代码 代码如下:

$ sort test.sql > test.bak && lp test.bak

||
命令1 || 命令2:如果这个命令执行失败了 || 那么执行这个命令。

复制代码 代码如下:

$ cp test.sql test.bak || echo "errors occured during coping file"

例如:
[jb]/usr/xxxx/ytcclb>cp test.sql test.bak
[jb]/usr/xxxx/ytcclb>ls -l test.*
-rwxr--r-- 1 xxxx group 225 Nov 15 18:08 test.bak
-rwxr--r-- 1 xxxx group 225 Nov 15 14:12 test.sql
[jb]/usr/xxxx/ytcclb>chmod u-w test.bak
[jb]/usr/xxxx/ytcclb>ls -l test.*
-r-xr--r-- 1 xxxx group 225 Nov 15 18:08 test.bak
-rwxr--r-- 1 xxxx group 225 Nov 15 14:12 test.sql
[jb]/usr/xxxx/ytcclb>cp test.sql test.bak || echo "errors occrued during coping file"
cp: unable to create file test.bak: Permission denied (error 13)
errors occrued during coping file
[jb]/usr/xxxx/ytcclb>

()和{}:将几个命令组合起来使用。
(命令1;命令2;...):在当前shell中执行一组命令。
{命令1;命令2;...}:大括号里面的内容将作为整体执行。

时间: 2024-12-10 20:18:48

linux shell命令执行顺序的控制方法_linux shell的相关文章

Shell 命令执行顺序分析[图]_linux shell

Shell 从标准输入或脚本中读取的每一行称为管道(pipeline);它包含了一个或多个命令(command),这些命令被一个或多个管道字符(|)隔开. 事实上还有很多特殊符号可用来分隔单个的命令:分号(;).管道(|).&.逻辑AND (&&),还有逻辑OR (||).对于每一个读取的管道,Shell都回将命令分割,为管道设置I/O,并且对每一个命令依次执行下面的操作: 整个步骤顺序如上图所示,看起来有些复杂.当命令行被处理时,每一个步骤都是在Shell的内存里发生的;Shel

shell命令执行顺序的控制办法

 && 命令1 && 命令2:如果这个命令执行成功&&那么执行这个命令. [开发]/usr/xxxx/ytcclb>ls -l test.sql -rwxr--r-- 1 xxxx group 225 Nov 15 14:12 test.sql [开发]/usr/xxxx/ytcclb>cp test.sql test.bak && echo "coping file ok!" coping file ok!

Linux rpm命令参数使用大全(经典)_linux shell

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的"添加/删除程序" rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种.二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译.安装.源代码包经常以src.rpm作为后缀名. 常用命令组合: -ivh:安装显示安装进度--install--verbose--hash -Uvh:升级软件包--Update: -qpl:列出RPM软件包内的文件信息[Q

Linux rpm 命令参数使用详解_linux shell

rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种.二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译.安装.源代码包经常以src.rpm作为后缀名. 常用命令组合:  -ivh:安装显示安装进度--install--verbose--hash -Uvh:升级软件包--Update: -qpl:列出RPM软件包内的文件信息[Query Package list]: -qpi:列出RPM软件包的描述信息[Query Package install packag

shell命令行参数用法简介_linux shell

一个shell脚本,它本身的命令参数是什么样呢? 首先 ,shell脚本编程和python等脚本编程一样可以使用参数:其次 ,shell参数分为位置参数和内部参数: 其中,位置参数 :是由系统提供的参数,就是我们一般说的某个数组的第1,2,3...个元素:可以采用$i的形式获得某个参数,显然$0就是程序本身,$1就是第一个参数: 这里需要注意的是,即便你以sh xxx.sh 来执行脚本,$0仍然是xxx.sh ,而不是sh !这一点和我们的perl  python 都是一致的 内部参数 : 复制

Shell命令批量修改图片文件名_linux shell

公司同事今天找我帮忙修改文件名,我一看,好嘛,几百个文件要改名,文件名格式是_01.png _02.png这样依次类推,同事要求把前面的"_"给去掉,还好要求算简单,没有让我再改成其他名字. 一条命令搞定: 复制代码 代码如下: for i in `ls _*.png`; do mv "$i" `echo "$i" |awk -F '_0' '{print $1 "0" $2}'`; done 如果要连_0都去掉的话,就这样写

Linux复制文件命令cp之使用解说_linux shell

Linux下的命令有很多,其中有一个命令,我一直使用都存在问题,那就是cp命令了.每次使用该命令,都提示cp:omitting directiory错误.最后百度了一下才明白,原来cp命令复制目录的时候需要带命令参数的.难怪我一使用cp命令就报错.下面说一下该命令的一些使用技巧: 1. cp命令语法 cp [options] <source file or directory> <target file or directory> 或 cp [options] source1 so

Linux Shell脚本面试25问集合_linux shell

Q:1 Shell脚本是什么.它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令.作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务. Q:2 什么是默认登录shell,如何改变指定用户的登录shell 答:在Linux操作系统,"/bin/bash"是默认登录shell,是在创建用户时分配的.使用chsh命令可以改变默认的shell.示例如下所示: # chsh <user

linux rsync安装 配置 实例详解_linux shell

Redhat中安装rsync 1.  首先在服务端和客户端都安装rsync,我的RHEL5默认已经安装好了.在安装RedHat5的时候,可以在软件定制中的"基本系统"-->"基本"的"可选的软件包"中看见:rsync-2.6.8是默认选择安装的 2.    也可以通过命令行检查是否安装: 或者:rpm –q rsync 3.  如果在开始安装RedHat的时候,使用默认选择的rysnc软件,但现在想用更高版本的rsync,可以卸载掉rysn