Linux之编写shell脚本
什么是shell脚本首先它是一个脚本,并不能作为正式的编程语言。因为是跑在linux的shell中,所以叫shell脚本。说白了,shell脚本就是一些命令的集合。例如:创建、进入、删除目录,拷贝文件等操作。Shell脚本通常都是以.sh 为后缀名的shell脚本的基本结构以及如何执行最基本的shell脚本(Ubuntu14.04)①:脚本内容hello.sh#! /bin/sh#必需的:表示该文
·
什么是shell脚本
- 首先它是一个脚本,并不能作为正式的编程语言。因为是跑在linux的shell中,所以叫shell脚本。说白了,shell脚本就是一些命令的集合。
例如:创建、进入、删除目录,拷贝文件等操作。 - Shell脚本通常都是以.sh 为后缀名的
shell脚本的基本结构以及如何执行
最基本的shell脚本(Ubuntu14.04)
①:脚本内容hello.sh
#! /bin/sh #必需的:表示该文件使用的是bash语法,不加就无法执行
echo "Hello World!"
②:给脚本执行权限
默认我们用vim编辑的文档是不带有执行权限的,所以需要加一个可执行权限
sudo chmod 775 hello.sh
或
sudo shmod +x hello.sh
③:脚本执行方法
方法一:./hello.sh
方法二:sh hello.sh
注意:使用sh命令去执行一个shell脚本的时候是可以加-x选项来查看这个脚本执行过程的,这样有利于我们调试这个脚本哪里出了问题。
方法三:sh -x hello.sh
执行效果:
输入/输出重定向
输入/输出重定向是改变 Shell 命令或程序默认的标准输入/输出目标,重新定向到新的目标。
Linux 中默认的标准输入定义为键盘,标准输出定义为终端窗口。
输出重定位
> 或 1> 输出重定向,会覆盖之前内容
用法:echo "hello world" > 文件名 //把终端内容输出给文件
>> 或 1>> 追加,在文件末尾添加
用法:echo "hello hangzhou >> 文件名
输入重定位
wc < 文件名 //从文件中获取数据
wc -w < 文件名 //获取文件中的单词数
查找字符串grep
命令格式:
grep [选项] PATTERN [文件名]
选项:
-V 或 --version 查看 grep 版本
-e PATTERN 实现多个选项的匹配,逻辑 or 的关系(grep -e pattern1 -e pattern2 file) -i ignore-case 忽略字符大小写 [Hh]ello
-v 表示反向选取,即显示不包含匹配文本的所有行
-n 或 --line-number 显示行号
-r 或 -R:指定的查找对象是目录不是文件时,表示读取目标目录下的所有文件
-w 匹配整个单词,如果是字符串中包含此单词,则不做匹配
PATTERN:
匹配样式(需要匹配的字符串样式)支持基本正则表达式
文件名:
需要查找的文件(若不指定任何文件名称,或是所给予的文件名为"-",则 grep 指令会从标准输入设备读取数
据。)
示例(a.c)
①:搜索”hello”字符串
gerp hello a.c
②:搜索时不区分大小写
grep -i hello a.c
③:显示行号
grep -i -n hello a.c
④:显示不包含某个字符串的行
grep -i -n -v hello a.c
⑤:日常使用
运行shell脚本可能遇到的问题
①:报错:-bash: ./mklib.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录
解决方法:
运行:sed -i 's/\r$//' filename
#filename是脚本名(mklib.sh)
更多推荐
已为社区贡献1条内容
所有评论(0)