Shell脚本学习笔记
来源:互联网 发布:织梦cms手机版 编辑:程序博客网 时间:2024/04/29 18:28
参考C语言中文网的shell学习教程,总结shell脚本一些常用的语法与其他语言的区别:
1.变量
varname="hello" #变量名和等号之间不能有空格,等号和变量名之间也不能有空格。
变量使用两种方式:
echo $varname
echo ${varname} (推荐)
readonly varname #设置变量为只读
unset varname(或者function) 删除变量或者方法
特殊变量
2.替换
a=1echo -e "Value of a is $a \n"打印出的是:命令转换:Value of a is 1
echo "Value of a is $a \n"打印出的是:可以使用 echo 命令的 -E 选项禁止转义,默认也是不转义的;使用 -n 选项可以禁止插入换行符。Value of a is 1 \n转意字符有:转义字符 含义 \\反斜杠\a警报,响铃\b退格(删除键)\f换页(FF),将当前位置移到下页开头\n换行\r回车\t水平制表符(tab键) \v垂直制表符
DATE=`date` ##符号是esc下面的键
echo "Date is $DATE"
可以使用的变量替换形式:
若此替换出现在Shell脚本中,那么脚本将停止运行。${var:+word}如果变量 var 被定义,那么返回 word,但不改变 var 的值。具体效果自己操作下。
3.运算符
一般使用expr进行运算
val=`expr 2 + 2` 注意中间的空格 ,2和+之间空格隔开
echo "Total value : $val"
4.字符串
字符串的可以是加单引号(串中不允许加单双引号,转移字符也无效)、双引号或者不加,建议加双引号
获取长度:
string="abcd"
echo ${#string} #输出 4
提取子串:
string="alibaba is a great company"
echo ${string:1:4} #输出liba
5.数组
下标必须大于=0,使用
arr=(value0 value1 value2 value3)中间是空格
或者arr[0]=value0 ,arr[1] ........
访问:${array_name[index]} 其中index如果为*或者@即访问所有的元素
6.控制语句
if ... fi 语句;
if ... else ... fi 语句;
if ... elif ... else ... fi 语句
case 值 in模式1) command1 command2 command3 ;;模式2) command1 command2 command3 ;;*) command1 command2 command3 ;;esac
for 变量 in 列表do command1 command2 ... commandNdone
while commanddo Statement(s) to be executed if command is truedone
until commanddo Statement(s) to be executed until command is truedone
7.重定向
$ command > file标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
8.引入脚本
两种方式:
1). filename
2) source filename
9.tar命令
分为两部分:
-f 是通配都可以使用,表示使用压缩文件或设备
-t 列出包的内容
一是:压缩
-c 创建新的包
-r 为包添加新的文件
-u 更新包中的文件
例子:
tar -cf test.tar *.db #将当前目录的所有.db结尾的文件压缩到test.tar
tar -tf test.tar #列出test.tar的所有文件
tar -rf test.tar log* #将log*的文件添加进test.tar
tar -uf test.tar test.txt #将更新test.txt文件,如果没有直接添加,所以-u 可以完全替代-r
二是:解压
tar -xvf test.jar #解压非gzip格式压缩包
tar -zxvf test.jar #解压非gzip格式压缩包
经过以上tar命令压缩后的文件(只是把文件放在一起,未压缩)还是非gzip的压缩包,不能使用-z否则报错,需要执行gzip test.jar后才是gzip压缩包。
通过gzip -d test.jar.gz可以还原到test.jar.
-x 表示解压缩
-v生成解压缩过程的状态信息
10.其他
wc -l命令:列出行数
参考教程:http://c.biancheng.net/cpp/view/2740.html
- SHELL脚本,学习笔记
- shell脚本学习笔记
- shell 脚本学习笔记
- shell脚本学习笔记
- shell脚本学习笔记
- shell脚本学习笔记
- Shell脚本学习笔记
- shell 脚本学习笔记
- shell脚本学习笔记
- Shell脚本学习笔记
- Shell脚本学习笔记
- shell脚本学习笔记
- shell脚本学习笔记
- Shell脚本学习笔记
- shell脚本学习笔记
- Shell脚本学习笔记
- shell 脚本学习笔记
- shell脚本学习笔记
- Swift1
- ios开发之-从服务器下载文件
- android EditText获取焦点后与输入框界面冲突解决方法
- 大姑娘小伙子们,你妈喊你们农忙回家烤烤烟、掰包谷、割谷子了~
- AFNetworking上传图片成功后 依然执行failure代码块
- Shell脚本学习笔记
- CSS 遮照层的使用
- Storm/kafka/flume运维命令
- 阅读代码规范记录
- SQLHelper类
- 1072:Nightmare
- TQ2440 学习笔记—— 12、GPIO 接口【基础知识】
- 用header函数设置信息的几种
- Android ListView错位问题之背景色错位