shell编程之helloworld

Posted 架构师小跟班

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程之helloworld相关的知识,希望对你有一定的参考价值。

/bin/sh与/bin/bash的区别
sh:如果前面有语句报错,则报错语句后面的命令不执行
bash:如果前面有语句报错,后面的命令也会执行
sh跟bash的区别,实际上就是bash有没有开启posix模式的区别(遵循posix的特定规范,有可能就包括这样的规范:“当某行代码出错时,不继续往下解释”)

脚本第一句:
#!/bin/sh 等同于 #!/bin/bash --posix

第一个shell脚本
#!/bin/bash
#author wangxiangyu
# 2017-05-29
echo \'wangxiangyu, yuanyuan and lovely susu are a happy family\'

注意:
#!/bin/bash 表示使用bash版本的shell脚本,固定格式
echo 输出语句
如果在Windows系统环境下编写shell脚本,会报“/bin/sh^M: bad interpreter: No such file or directory”异常,原因是两种系统有些字符(比如回车符)不一样,Linux识别不了造成的,可以使用:dos2unix hello.sh命令转换格式

系统可能没有安装这个命令的包,可以手动安装,使用命令:yum -y install dos2unix

脚本执行方式
1、赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh(相对路径) 或 /test/hello.sh(绝对路径)
2、通过bash调用执行脚本
bash hello.sh

输出重定向

标准输出重定向
命令>文件 以覆盖的方式把命令的正确输出写到指定的文件或设备中
命令>>文件 以追加的方式把命令的正确输出写到指定的文件或设备中
标准错误输出重定向
错误命令 2> 文件 以覆盖的方式把命令的错误输出写到指定的文件或设备中,2和>之间不能有空格
错误命令 2>>文件 以追加的方式把命令的错误输出写到指定的文件或设备中
正确输出和错误输出同时保存
命令>文件 2>&1 或 命令&>文件 以覆盖的方式,把正确输出和错误输出都保存到同一个文件中
命令>>文件 2>&1 或 命令&>>文件 以追加的方式,把正确输出和错误输出都保存到同一个文件中
命令>>文件一 2>>文件二 把正确的输出追加到文件1中,把错误的输出追加到文件2中
注:如果文件不存在,则会在当前目录下创建

输入重定向

wc -c 统计字节数 -w 统计单词数 -l 统计行数

多命令顺序执行与管道符

; 命令1;命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1&&命令2 逻辑与,当命令1正确执行,则命令2才会执行;当命令1执行不正确,则命令2不会执行
|| 命令1||命令2 逻辑或,当命令1执行不正确,则命令2才会执行;当命令1正确执行,则命令2不会执行
| 命令1|命令2 管道符,命令1的正确输出作为命令2的操作对象
命令 && echo yes || echo no 命令执行成功则打印yes,命令执行失败则打印no

dd if=输入文件 of=输出文件 bs=字节数 count=个数
if=输入文件 指定源文件或源设备
of=输出文件 指定目标文件或目标设备
bs=字节数 指定一次输入/输出多少字节,即把这些字节看做一个数据块
count=个数 指定输入/输出多少个数据块
date; dd if=/dev/zero of=/root/testfile bs=1k count=102400;date 即创建一个100M的文件testfile需要多少时间

netstat -an | grep ESTABLISHED 查看当前系统中所有正在连接的网络

通配符

? 匹配一个任意字符
* 匹配0个或任意多个任意字符,也就是可以匹配任何内容
[] 匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c
[-] 匹配中括号中任意一个字符,-代表一个范围。例如:[a-z]代表匹配一个小写字母
[^] 逻辑非,表示匹配不是中括号内的一个字符,例如:[^0-9]代表匹配一个不是数字的字符

变量

会计

 

以上是关于shell编程之helloworld的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本的学习和使用

Linux之shell脚本编程

Linux之shell脚本编程

Linux之shell编程

Linux之shell编程

Linux之shell编程