Linux学习笔记之(1):学习shell script
来源:互联网 发布:类似于朱炫的知乎 编辑:程序博客网 时间:2024/06/07 02:48
shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell语法与命令(含外部命令)写在里面,搭配正则表达式、管道命令与数据流重定向等功能,以达到我们所想要的处理目的。
一.第一个script的编写与执行
执行:命令的执行从上而下,从左而右的分析与执行;命令、参数间的多个空白会被忽略、空白行也被忽略、[tab]键视为空格键;如果读到一个符号,就尝试执行该行命令,内容太多,可以使用\[ENTER]来扩展到下一行;#可作为批注。
1.直接命令执行:需要rx权限./shell.sh
2.以bash进程执行:需要r权限bash shell.sh或sh shell.sh
直接执行和bash/sh执行,script是在子进程的bash内执行的,执行结束后,子进程内的各项变量或操作将会结束而不会传回到父进程中;利用source执行脚本,在父进程中执行
编写:mkdir scripts;cd scripts gedit sh01.sh
#!/bin/bash
#程序内容说明
PATH=/bin/:/sbin/...............
export PATH
echo -e "HelloWorld! \a \n"
exit 0
第一行#!/bin/bash声明这个script使用的shell名称
第三行主要环境变量声明,最后一行告知执行结果,可用echo $?查看结果
数值运算:var=$((运算内容))
二.善用判断式
1.利用test命令的测试功能:检测文件是否存在和其相关属性
2.利用判断符号[]:数据判断,中括号内每个组件都需要空格键来分割,括号内的变量最好以双引号括起来,常量以单或双括号括起来。
3.shell script的默认变量:$0执行脚本文件名,$1 $2...接受的参数,$#代表后接参数的个数,$@代表"$1","$2"...之意,每个变量是独立的,$*代表$1c$2c$3c$4,c为分割符, 默认空格键;shift:造成参数变量号码移位,shift后面可接数字,表示拿掉最前面的几个参数的意思
三.条件判断式
1.利用if...then
单层/简单条件判断式:
if [条件判断式] ; then
.....
fi
多个条件判断式时[]&&[]代表and,[] || []代表or,&&和||与程序的连续执行区别开
多重/复杂条件判断式:
if [ ] ;then
...
else
...
fi
if [ ] ; then
...
elif [ ] ; then
...
else
...
fi
2.利用case...esac判断
多个既定内容的判断:
case $变量名 in
"第一个变量内容")
;;
"第一个变量内容")
;;
*)
exit 1
;;
esac
如/etc/init.d/syslog restart的重启
3.利用function功能
类似自定义执行的东西:function设置要写在程序的最前面
function fname () {
程序段
}
function也拥有内置变量,$0$1$2....
四.循环(loop)
1.不定循环while do done,until do done
while [condition]
do
程序段
done
condition成立时,进入循环
until [condition]
do
程序段
done
condition成立时,终止循环
2.固定循环for...do..done
do
程序段
done
知道循环几次
for ((初始值;限制值;执行步长))
do
程序段
done
五.shell script的追踪与调试
sh [-nvx] scripts.sh
-n:不要执行script,尽查询语法错误
-v:在执行script前,先将script内容输出到屏幕上
-x:将使用到的script内容显示到屏幕上,这是很有用的参数
shell script的学习,需要多看,多模仿并加以修改成自己的样式
- Linux学习笔记之:学习Shell Script
- Linux学习笔记之(1):学习shell script
- Linux学习之shell script
- shell script学习笔记1
- Shell Script 学习笔记
- Linux shell script学习笔记一
- Linux学习笔记(9)----shell script
- Linux shell script学习
- Linux 学习笔记 -- 第三部分 学习 shell 与 shell script -- 第13章 学习 shell script
- Linux Script学习笔记1
- 「学习笔记-Linux」学习Shell Script
- shell script学习笔记2
- shell script学习笔记3
- shell script学习笔记4
- shell script学习笔记5
- shell script学习笔记6
- shell(Bash) script学习笔记
- Linux的Shell Script学习
- Android 四种常见的线程池
- MySQL BOOL/BOOLEAN 与 TINYINT 测试总结
- YV12转RGB24
- 10.18收获记录
- YV12转RGB24
- Linux学习笔记之(1):学习shell script
- FFMPEG PCR PID修改以及插入间隔计算
- weblogic安装及域的配置
- Java学习总结第三十天Java泛型(三)
- Java Script 的调试技巧
- Delphi XE2 之 FireMonkey 入门(2)
- Android APP--建立简单的交互界面
- Android6.0 图像合成过程详解(一) setUpHWComposer函数
- java 用split截取特殊字符