赞
踩
1、#!/bin/bash 指定解释器是 bash(解释器有几种)
2、a=1 给a赋值为1,注意中间不能有空格,赋值时不能有空格
3、unset a 取消变量a
4、readonly a=10 声明a为只读变量,并且赋值为10,注意这时就不能用unset 来取消变量a了
5、在shell中,变量的默认类型是字符串类型,不能进行数值计算,比如 a=123,这里的 123是字符串
6、变量的值中有空格的话,要用单引号或者双引号括起来
7、export a 可以将变量 a 弄成全局环境变量,这时所有个shell程序都能用 a 这个变量了,但是只能在本 bash中才能使用,切换到其他 terminal 即其他窗口时就不行了
8、特殊变量 $n 比如 $0 $1 这些变量代表着执行脚本时输入的参数,$0是脚本本身,$1-$9 代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10)
9、特殊变量 $# 表示输入参数的个数(脚本本身不算),常用于循环程序中
10、特殊变量 $* 表示这个变量代表命令行中所有的参数(脚本本身不算),S*把所有的参数看成一个整体
11、特殊变量 $@ 表示这个变量代表命令行中所有的参数(脚本本身不算),S@ 会把每个参数区分对待
12、特殊变量 $? 表示:(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了
13、拼接字符串 a=$b$c 就可以将 字符串 b和字符串 c拼在一起了, a=aaa$b,aaa跟$b拼在一起
14、运算符:(()) 或者是[] , 例如: a=1 b=1 $((a+b)) $[a+b],
还可以用 expr: 例如: expr a + b (中间要有空格)
15、条件判断
16、case 条件判断
17、for循环
- #!/bin/bash
-
- s=0
- for i in 1 2 3 4 10
- do
- s=$[$s+$i]
-
- done
- echo $s
-
- echo ------ \$@ -------------
-
- for i in $@
- do
- echo $i
- done
-
- echo ------- \$* ------------
-
- for i in $*
- do
- echo $i
- done
-
- echo ------ \"\$@\" -------------
- # 以下代码就能体现 $@ $*的区别
-
- for i in "$@"
- do
- echo $i
- done
-
- echo ------- \"\$*\" ------------
- for i in "$*"
- do
- echo $i
- done

18、while 循环 (可以用 break)
19、从终端获得数据类似 scanf:
-t 表示在限定时间内要输入数据,不然就继续向后执行代码
-p 表示提示信息
-s 表示不回显,可以用在密码或者按任意键退出的情景下
还有其他的 参数
20、系统函数 basename : 功能是将文件路径中的最后一个文件名提取出来(也可以操作目录)
21、提取文件的路径:dirname (也可以操作目录)
22、自定义函数 add,function可写可不写,函数的返回值只能通过 $? 来获取
23、cut 切割:可以用来切割文件,也可以用来切割字符串
-d 表示 用什么符号来切割 -f 表示要获取第几列数据 3 表示第三列 3-表示第三列之后的
24、sed 流编辑器,一次处理一行内容,处理完成后就把数据送到屏幕,接着处理下一行,直到完成。文件的内容不会受到影响
sed [选项参数] ‘command’ filename
选项参数 -e 直接在指令列模式上进行sed的动作编辑
sed '2a mei nv' sed.txt :将“mei nv”这个单词插入到sed.txt第二行下
sed '/wo/d' sed.txt : 删除sed.txt文件所有包含wo的行
sed 's/wo/ni/g' sed.txt:将sed.txt文件中wo替换为ni
sed -e '2d' -e 's/wo/ni/g' sed.txt : 将sed.txt文件中的第二行删除并将wo替换为ni
25、awk : 匹配原则看看正则表达式
26、sort 排序
选项 | 说明 |
-n | 依照数值的大小排序 |
-r | 以相反的顺序来排序 |
-t | 设置排序时所用的分隔字符 |
-k | 指定需要排序的列 |
解决方案1:dos2unix 如果没有该插件 需要安装 sudo apt-get install dos2unix
执行 dos2unix shell脚本 转换成功就可以执行运行
解决方案2:在 vi中执行 set ff=unix
这位老哥总结的更详细
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。