shell 脚本学习
来源:互联网 发布:手机直播网络要求 编辑:程序博客网 时间:2024/06/09 18:34
1.shell 命令中没有参数的选项可以合并
2.shell 字符串有空格时,使用双引号
3.set -x 跟踪命令执行,set +x关闭跟踪命令
4.变量名都是字符串,引用变量方式为$+变量名,变量名与其它名字混淆需要用{}包起来
num=2
echo "this is the ${num}nd"
echo "this is the ${num}nd"
5.backtick(反斜杠)后一个命令的输出为前一个命令的参数
tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`
6.【】用于测试条件
[ -f "somefile" ] :判断是否是一个文件
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
[ -n "$var" ] :判断$var变量是否有值
[ "$a" = "$b" ] :判断$a和$b是否相等 ,注意“=”和变量之间要有空格。
7.select为Shell的扩展使用方式,用于交互式的使用
#!/bin/sh
echo "What is your favourite OS?"
select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do
break
done
echo "You have selected $var"
下面是该脚本运行的结果:
What is your favourite OS?
1) Linux
2) Gnu Hurd
3) Free BSD
4) Other
#? 1
You have selected Linux
8.双引号可以防止通配符的扩展,单引号不但可以防止通配符的扩展,还可以防止变量的扩展
echo $SHELL
echo "$SHELL"
echo '$SHELL'
输出结果为:
/bin/bash
/bin/bash
$SHELL
9.以{}括起来的shell命令,可以当成是匿名函数
{echo “help”; print "help" }
10.Shell也有一个真实的调试模式。如果在脚本中有错误,您可以这样来进行调试:
sh -x test.sh
这将执行该脚本并显示所有变量的值。
shell还有一个不需要执行脚本只是检查语法的模式。可以这样使用:
sh -n test,sh
11. Shell基本命令
在shell脚本中可以使用任意的unix/linux命令,但是还是由一些相对更常用的命令。这些命令通常是用来
进行文件和文字操作的。
常用命令语法及功能
echo "some text": 将文字内容打印在屏幕上
ls: 文件列表
wc –l filewc或-w filewc或-c file: 计算文件行数;计算文件中的单词数;计算文件中的字符数
cp sourcefile destfile: 文件拷贝
mv oldname newname : 重命名文件或移动文件
rm file: 删除文件
grep 'pattern' file: 在文件内搜索字符串比如:grep 'searchstring' file.txt
cut -b colnum file: 指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出
每行第5个到第9个字符cut -b5-9 file.txt
cat file.txt: 输出文件内容到标准输出设备(屏幕)上
file somefile: 得到文件类型
read var: 提示用户输入,并将输入赋值给变量
sort file.txt: 对file.txt文件中的行进行排序
uniq: 删除文本文件中出现的行列比如: sort file.txt | uniq
expr: 进行数学运算Example: add 2 and 3expr 2 "+" 3
find: 搜索文件比如:根据文件名搜索find . -name filename -print
tee: 将数据输出到标准输出设备(屏幕) 和文件比如:somecommand | tee outfile
basename file: 返回不包含路径的文件名比如: basename /bin/tux将返回 tux
dirname file: 返回文件所在路径比如:dirname /bin/tux将返回 /bin
head file: 打印文本文件开头几行
tail file : 打印文本文件末尾几行
sed: Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将
echo "some text": 将文字内容打印在屏幕上
ls: 文件列表
wc –l filewc或-w filewc或-c file: 计算文件行数;计算文件中的单词数;计算文件中的字符数
cp sourcefile destfile: 文件拷贝
mv oldname newname : 重命名文件或移动文件
rm file: 删除文件
grep 'pattern' file: 在文件内搜索字符串比如:grep 'searchstring' file.txt
cut -b colnum file: 指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出
每行第5个到第9个字符cut -b5-9 file.txt
cat file.txt: 输出文件内容到标准输出设备(屏幕)上
file somefile: 得到文件类型
read var: 提示用户输入,并将输入赋值给变量
sort file.txt: 对file.txt文件中的行进行排序
uniq: 删除文本文件中出现的行列比如: sort file.txt | uniq
expr: 进行数学运算Example: add 2 and 3expr 2 "+" 3
find: 搜索文件比如:根据文件名搜索find . -name filename -print
tee: 将数据输出到标准输出设备(屏幕) 和文件比如:somecommand | tee outfile
basename file: 返回不包含路径的文件名比如: basename /bin/tux将返回 tux
dirname file: 返回文件所在路径比如:dirname /bin/tux将返回 /bin
head file: 打印文本文件开头几行
tail file : 打印文本文件末尾几行
sed: Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将
结果输出到标准输出(屏幕)。该命令采用正则表达式(见参考)进行搜索。
不要和shell中的通配符相混淆。比如:将linuxfocus 替换为
LinuxFocus :cat text.file | sed 's/linuxfocus/LinuxFocus/' > newtext.file
不要和shell中的通配符相混淆。比如:将linuxfocus 替换为
LinuxFocus :cat text.file | sed 's/linuxfocus/LinuxFocus/' > newtext.file
tee:通过tee传送管道命令(例如
someprog | tee logfile
)让你复制那个命令的输出到文件,并同时在终端输出which:如果你在终端运行一个程序foo.exe,你想要知道该程序在什么位置,只需要输入
which foo.exe
0 0
- 【脚本学习】区分shell与shell脚本
- Shell脚本学习
- Shell脚本 学习
- shell脚本的学习
- shell脚本学习-1
- shell脚本学习-2
- shell脚本学习小结
- Shell脚本学习一
- shell 脚本学习
- linux shell脚本学习
- Linux Shell脚本学习
- shell 脚本学习
- shell脚本学习
- SHELL脚本,学习笔记
- shell脚本学习链接
- shell脚本学习
- shell脚本学习笔记
- Linux shell脚本学习
- C/C++常用函数使用总结
- 基于SVM和神经网络的车牌识别:项目启动
- 【MFC控件索引之Edit控件】控件的自动换行操作
- 文本变量
- 互联网数据中心——IDC(Internet Data Center)
- shell 脚本学习
- sql查询优化
- 分布式跟踪系统—Zipkin
- 如何保存ie8的设置
- windows核心编程-关键段与SRWLock
- 查看远程git仓库的信息
- 苦逼程序员的求职之路
- 网站左侧导航代码如何编写
- powercenter问题