python基础分享
&&
command1 && command2 [&& command3 ...]
只有在&&左边的命令返回真时,&&右边的命令才会被执行下去
只要有一个命令返回假,后面的命令就不会被执行
想:所有&&连接的条件,只要发现有一个假的话,就不必要执行下去了,因为最终结果肯定是假。
注:命令返回值 $? == 1表示假,命令返回值 $? == 0 表示真
||
command1 || command2 [|| command3 ...]
只有左||左边返回假的时候,||右边的命令才会执行
只要有一个命令返回真,后面的命令就不会被执行
想:所有||连接的条件就是一个或功能,有一个真那就是真
&
&放在启动参数后面表示设置此进程为后台进程,与&&完全不一样的意义
command1 &
默认情况下,进程是前台进程,这时就把Shell给占据了,
我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的
|
人称管道符
上一条命令的输出,作为下一条命令参数
command1 | command2
# cat /etc/passwd | grep /bin/bash | wc -l
第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,
grep命令找出含有“/bin /bash”的所有行;
第二个管道将grep的输出送给wc命令,
wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用bash
;
command1 ; command2
;将命令分隔,每个命令都会从左到右顺序执行。彼此之间没有关系,所有命令都会执行到
> <
> 和 < 分别代表重定向的方向,是从左到右还是从右到左
>> <<
>> 和 << 代表追加,也就是不改变重定向目标文件原有的内容,追加在后面
&>
/dev/null 表示空设备文件;
0 表示stdin标准输入;
1 表示stdout标准输出;
2 表示stderr标准错误。
&> 比 >多了一个字符 ,当我们想用>重定向到一个文件时,如果左边的是标准输出,那就能成功。
但如果左边是一个报错,那我们就会在屏幕上看到报错信息,而文件中并没有东西输出。
但如果前面加上&,就会将报错转化为标准输出重定向到文件中而不会在屏幕输出
cd -
cd -
返回切换前的目录
2>&1
/dev/null 表示空设备文件;
可以把/dev/null 可以看作"黑洞". 它等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到.
0 表示stdin标准输入;
1 表示stdout标准输出;
2 表示stderr标准错误。
2>&1 的意思就是将标准错误重定向到标准输出
eq:解读 ls ** >out.txt 2>&1
上面相当于 ls ** 1>out.txt 2>&1
执行 ls ** 如果产生标准输出(1),那么结果会到out.txt中去;如果产生错误输出(2),那么结果会到标准输出(1)中去,
因为标准输出(1)是到out.txt中去的,所以错误输出(2)也会到out.txt 中去
这么说来 ** &>/dev/null 应该等价于 ** >/dev/null 2>&1
$0
当前脚本的文件名
$n
传递给脚本或函数的参数。n 可以是1、2、3...任何一个参数,数字是几就表示第几个参数
$#
传递给脚本或函数的参数的个数
$*
传递给脚本或函数的所有参数
$@
传递给脚本或函数的所有参数。
被双引号包含时会与$*有所不同:"$*" 会将所有的参数作为一个整体,
以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数
$?
上个命令的退出状态或是函数的返回值
$$
当前Shell进程的ID。对于Shell脚本来说就是这些脚本所在的进程ID
[] [[]]
[] 是 test 命令的简写 。[command] 等价于 test command
必须在左括号的右侧和右括号的左侧各加一个空格,否则会报错
大于符号或小于符号必须要转义,否则会被理解成重定向
[[]]是[ ]的针对数学比较表达式和字符串表达式的加强版
最新文章
- MySQL 表分区 报错:Table has no partition for value XXX
- js php json
- [stm32] STM32 Interrupts and events 系统了解(EXTI)及槽型光电开关tp850电路研究
- WordPress建站指南
- Data.gov.uk电子政务云,牛津大学NIE金融大数据实验室王宁:数据治理的现状和实践
- Linux 中使用 KVM
- EF 5.0 帮助类 增删改查
- Spring Mobile是如何判断访问设备的类型的
- 必会SQL练习题
- net core体系-web应用程序-4net core2.0大白话带你入门-4asp.net core配置项目访问地址
- GDC2017 把“现实的天空”在游戏内再现【Forza Horizon 3】的天空表现
- js 去掉花括号
- java中4种修饰符访问权限的区别
- 深入理解JAVA虚拟机阅读笔记5——Java内存模型与线程
- leetcode weekly contest 43
- heartbeat 心跳技术
- ref 和 out 的用法和区别以及params用法
- Choose which tree,form view in many2one
- 高性能Web开发系列
- hbase-0.20.6/bin/hbase-daemon.sh: Permission denied