条件测试的写法,有以下10种:
1.执行某个命令的结果
2.传回某个命令执行结果的相反值
3.使用复合命令:((算术))
4.使用Bash关键字‘[[’、‘]]’组成的式子:[[ 判断式 ]]
5.使用内置命令:test 判断式
6.使用内置命令:[ ]
7.使用 -a、-o 进行逻辑组合
8.命令1 && 命令2
9.命令1 || 命令2
10.&& 和 || 合用
条件测试的写法,有以下10种:
1.执行某个命令的结果
2.传回某个命令执行结果的相反值
3.使用复合命令:((算术))
4.使用Bash关键字‘[[’、‘]]’组成的式子:[[ 判断式 ]]
5.使用内置命令:test 判断式
6.使用内置命令:[ ]
7.使用 -a、-o 进行逻辑组合
8.命令1 && 命令2
9.命令1 || 命令2
10.&& 和 || 合用
在Bash Shell中,流程控制命令有2大类:“条件”、“循环”。属于“条件”的有:if、case;属于“循环”的有:for、while、until;命令 select 既属于“条件”,也属于“循环”。不管是哪一种,均需进行条件测试,再根据测试结果,决定程序流程进行的方向。
Bash的算术运算有以下几种方法:
序号 | 名称 | 语法 | 范例 |
---|---|---|---|
1 | 算术扩展 | $((算术式)) | r=$((2+5*8)) |
2 | 使用外部程序 | expr 算术式 | r=`expr 4 + 5` |
3 | 使用 $[] | $[算术式] | r=$[4+5] |
4 | 使用内置命令 declare | declare -i 变量=算式式 | declare -i r=8+16 |
5 | 使用内置命令 let | let 算术式 | let r=8+16 |
Linux下默认cp命令是有别名的(alias cp='cp -i'),无法在复制时强制覆盖,即使你用 -f 参数也无法强制覆盖文件,下面提供几个从网上找的Linux下cp命令覆盖的方法。
1)取消cp的alias(放心这不是永久生效):
# unalias cp # cp -rf /test/a
2)加反斜杠 \cp 执行cp命令时不走alias:(注:推荐这个方法!)
# \cp -rf /test/a
《实战Linux Shell 编程与服务器管理》学习笔记
shell函数返回值一般有3种方式:
1、return语句(默认的返回值)
shell函数的返回值可以和其他语言的返回值一样,通过return语句返回。
2、全局变量或者环境变量
3、echo返回值(显式输出)
Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快。
1、函数定义
function 函数名() { 语句 [return] }
$IFS 这个变量中保存了用于分割输入参数的分割字符,默认识空格。
$HOME 这个变量中存储了当前用户的根目录路径。
$PATH 这个变量中存储了当前 Shell 的默认路径字符串。
$PWD 表示当前工作路径。
$BASH 表示当前 Shell 的路径字符串。
Shell中可能经常能看到:>/dev/null 2>&1
/dev/null 代表空设备文件
今天在虚拟机上安装了CentOS5.5,发现运行一些很正常的诸如:init,shutdown,fdisk 等命令时,悍然提示:
bash: xx command not found。
那么,首先就要考虑root 的$PATH里是否已经包含了这些环境变量(可能是我安装的时候选择了“最小安装”,导致一些功能没开启)。
主要是这四个:/bin , /usr/bin, /sbin, /usr/sbin。