shell命令总结

来源:互联网 发布:淘宝店铺注册单危险不 编辑:程序博客网 时间:2024/05/17 08:28

while 语法读取文件每一行

while read line ;do    echo $linedone < /path/file;

test命令

test命令基本等价于 []
用法示例:

if test -e ./file;then   echo truefi

表达式相关

获取表达式的值 : $(())
示例:

echo $((6%3))输出   0

也可以进行赋值

$((var=6%3))echo $var输出var的值

数组相关

数组定义

arr=(`ls ./`)arr=(1 2 3 4)

数组遍历

arr=(1 2 3 4)for i in ${arr[*]};do    echo $idone

if条件判断的注意事项

[]变量与[或者]需要空格隔开
test命令与[]的执行可以说基本一致,只是执行的方法
[[]]遵循逻辑短路,[]不遵循逻辑短路
[[]]支持 && || > < 逻辑判断符
-a, -o 表示逻辑
提示:
[]中只能使用-a或者-o进行与逻辑判断,[[]]支持&&操作符
[]或者[[]]中使用问题:
1.判断条件值需要用空格与[隔开
2.判断条件需要两个值需要与逻辑判断符用空格隔开123 == 123,否则会一直返回true
3.if判断的用法不仅限于 [[]] 判断

if echo "$word" | grep "123"thenecho "123"elseecho "not found"fi

字符串

实现字符串的拼接
1.str=str1{str2}
2.str=”str1str2”

获取命令的执行结果

chars=$(cat /etc/password)

chars 变量的值就是执行car /etc/password的结果

参数替换

${parameter-default}${parameter:-default}差异

asdasd=456var1=${www:-asdasd}echo var1 #输出456unset var1var1=var1=${www:asdasd}echo $var1 # 没有输出信息

当var1 声明,但是值为null时,${parameter:default}不会输出值
赋值时需要注意

echo ${var=abc} #输出var的值为abcecho ${var=xyz}#输出var的值为abc,var的值已经赋值不会改变,也就是说对于已经赋值的变量不会改变其值

${parameter+alt_value},${parameter:+alt_value}

注意事项

1.给变量赋值时 =两边不要存在空格,否则会当成命令进行执行
2.?03.@是所有的参数列表,$#为参数的个数
4.脚本中单引号不可包含变量,双引号字符串换可以
5.多个语句写在同一行需要用 ;进行分割
6. 中间的command可以赋值于变量,执行后的输出
7. command &> filename 重定向输出错误与标准输出

技巧

1.赋值字符串也可以不要引号

var1=123\ waterecho $var1 #123 water

补充我们也可以多行输入

echo 123\456#123456 输出一行

2.赋值ASCII码值

附录表:

文件相关
-e filename 如果filename存在则为真
-r filename 如果文件存在且可读为真
-w filename 如果文件存在且可写为真
-x filename 如果文件存在可写为真
-d filename 如果文件存在且为目录为真
-f filename 如果文件存在且为普通文件为真

字符串相关
==,!= 判断字符串相等或者不等
-z 判断字符串长度为0则为真
-n 判断字符串长度不为0则为真

全局变量
$UID只有当值为0时,执行脚本的权限为root权限

原创粉丝点击