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编程之awk命令详解
shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...
- 03 shell编程之case语句与函数
本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 ...
- shell编程之case分支语句
shell编程之case分支语句 case分支语句和if的多分支语句很相似. if多分支语句一般用在有(区间范围)的地方 :例如:0-100之间. if需要判断多个不同的条件. case的分支语句用在 ...
- shell编程之if语句
shell编程之if判断 目录 shell编程之if判断 1.整数比较 2.字符串比较 3.举例 1.数字比较 2.字符串比较 4.Other 1.整数比较 -eq 等于,如:if [ "$ ...
- Shell编程之Shift的用法
位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常 ...
- shell 编程之 for while until 循环
shell 的for循环 的格式如下: for 变量 in 列表 do ... done 列表是一组值的序列 每个值通过空格隔开 每循环一次,列表中的下一个值赋给变量 in 列表是可选的,如果不用他 ...
- shell 编程之 if...else case...esac
shell的条件判断语句有三种 if...fi 语句 if...else...fi 语句 if...elif...fi 语句 例子: a=10; b=20; if [ $a -gt %b ] t ...
- shell编程之echo printf 命令
shell中 echo 和printf 都能用作输出,printf可以算是echo的增强版 显示转义字符 echo \""abcdef\"" >>& ...
- shell编程之BASH变量(2)
变量命名规范 在bash中,变量的默认类型都是字符串型,定义 name = 'kk' 变量分类 用户自定义变量.变量自定义的 环境变量:这种变量中主要保存的是和系统操作环境相关的数据.变量可以自定义, ...
随机推荐
- linux ssh keys
1. 原理: SSH 密钥对总是成双出现的,一把公钥,一把私钥.公钥可以自由的放在您所需要连接的 SSH 服务器上,而私钥必须稳妥的保管好. 所谓"公钥登录",原理很简单,就是用户 ...
- Win10删除anaconda重装
1.找到anaconda安装的文件夹,找到Uninstall-Anaconda.exe,左键双击运行: 2.然后就按照提示开始卸载,会看到如下: 就会卸载完了,然后你就会发现anaconda所在的文件 ...
- 洛谷P2668 斗地主
好,终于搞完了这一道毒瘤题...... 先想到搜索,然后想到状压,发现数据组数很多,又是随机,还是决定用搜索. 先搜出的多的,于是顺序是三个顺子,然后按照多到少搜带牌,最后是不带牌. 大体思路很简单, ...
- 收藏:SQL重复记录查询 .
来自:http://blog.csdn.net/chinmo/article/details/2184020 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select ...
- 关于阿里云Centos服务器搭建Java网站不能访问的问题
首先阿里云提供的手册是没问题的 手工搭建 然后我在地址栏输入服务器地址之后总是提示无法访问! 输入命令 netstat -tunlp,80端口确实是在监听(这里不是8080,因为我在tomcat的配置 ...
- 邮件发送-》http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
昨天使用发送邮件报了一个错 http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256 主 ...
- 类变量、实例变量--python
1.类变量.实例变量概念 类变量: 类变量就是定义在类中,但是在函数体之外的变量.通常不使用self.变量名赋值的变量.类变量通常不作为类的实例变量的,类变量对于所有实例化的对象中是公用的. 实例变量 ...
- 搭建ftp
相信很多人都知道ftp吧.打个比方.在你们公司或者学校里面有一个ftp地址,里面存放了你们所需要的一些常用的资源.这样的话你们就可以随时登录这个ftp来拉取你所需要的资源(在范围内),简单的来说,ft ...
- Unity PC端发布失败解决办法
Unity的PC端有时候发布的时候报错.原因可能是你的游戏里面使用了NGUI的label,而且字体选择的是unity自带的字体.因为支持中文.在选择unity自带的字体时最好都选一样的字体.如果一个l ...
- UVALive 4850 Installations 贪心
题目链接 题意 工程师要安装n个服务,其中服务Ji需要si单位的安装时间,截止时间为di.超时会有惩罚值,若实际完成时间为ci,则惩罚值为max{0,ci-di}.从0时刻开始执行任务,问惩罚值最大 ...