Linux Sell Scripts学习笔记

注意事项:
  1. 指令的执行是从上而下、从左而右的分析与执行;
  2. 指令的下达: 指令、选项与参数间的多个空白都会被忽略掉;
  3. 空白行也将被忽略掉,幵且 [tab] 按键所推开的空白同样规为空格键;
  4. 如果读取到一个 Enter 符号 (CR) ,就尝试开始执行该行 (或该串) 命令;
  5. 至于如果一行的内容太多,则可以使用『 [Enter] 』来延伸至下一行;
  6. 『 # 』可做为批注!任何加在 # 后面的资料将全部被视为批注文字而被忽略!
执行方法

直接指令下达:

  • 绝对路径
  • 相对路径:./shell.sh
  • 变量PATH功能。放入PATH包含的目录下。可在全局直接执行
    bash程序执行(R权限)
  • bash shell.sh
  • sh shell.sh
第一支script
#!/bin/bash
PATH=PATH:~/bin
export PATH
echo -e "Hello World!\a \n"
exit 0

chmod a+x sh01.sh;./sh01.sh

判断式test

test -e filename

Test的标识代表意义
1.以下开始为:关于某个档名的文件类型判判断,如 tets -e filename
-e该档名是否存在
-f是否存在且为file
-d是否存在且为directory
-b是否存在且为一个block device装置
-c是否存在且为一个character device 装置
-S是否存在且为一个Socket档案
-p是否存在且为一个FIFO档案
-L是否存在且为一个连结档
2.以下开始为:关于某个档案的权限侦测,如 tets -r filename表示是否可读
-r是否存在且可读
-w是否存在且可写
-x是否存在且可执行
-u是否存在且具有SUID属性
-g是否存在且具有SGID属性
-k是否存在且具有Sticky bit属性
-s是否存在且为非空白档案
3.以下开始为:两个档案之间的比较,如test file1 -nt file2
-nt(newer than)
-otolder than
-efequal file
4.以下开始为:关于两个整数之间的判断,如test n1 -eq n2
-eqequal
-nenot equal
-gtgreater than
-ltless than
-gegreater than or equal
-leless than or equal
5.以下开始为:判定字符串的数据
test -z stringzero
test -n stringnot zero
test str1 = str2equal?
test str1 != str2not equal?
6.以下开始为:多重条件判定,test -r filename -a -x filename
-atest -r file -a -x file
-otest -r file -o -x file
!test ! -x file
判定符号[]

在bash语法中使用[]来作为shell的判断式时,必须要注意中括号的两端需要有空格符来分隔。

[ "$HOME" == "$MAIL" ]
 //bash当中一个=和两个=一样,推荐两个
  • 中括号内部的每个组件需要有空格键分隔
  • 中括号内的变数最好都以双引号括起来
  • 中括号内的常数最好都以单或双引号括起来
默认变数($0,$1)
  • $# : 代表后接的参数个数
  • $@ :全部参数,代表"$1" "$2" "$3" ...
  • $*$1 $2 $3 ...

shift n偏移几个,默认n=为0,移除第一个

条件判断式

if then语句

	if[];then
	;
	fi
	
	if[];then
	else 
	;
	fi
	
	if[];then
	;
	elif[];then
	;
	else
	;
	fi

	[ "$yn" == "Y" -o "$yn" == "y" ] 
	等同于
	[ "$yn" == "Y"] || ["$yn" == "y" ]

case esac语句

case $变量名称 in
"第一个变量内容")
	程序段
	;;
"第二个变量内容")
	程序段
	;;
*)
	exit 1
	;;
esac
function
function fname(){
	程序段
}

函数内建变量形式和bash一样 $1,$2..

循环loop
while []
do 
	程序段
done

until[]
do
程序段落
done

for var in con1 con2 con3 ...
do
	程序段
done

for((初始值;限制值;执行步阶))
do
	程序段
done
追踪与debug

sh [-nvx] scripts.sh
-n:不执行仅检查语法问题
-v:执行前,先将脚本内容输出到屏幕上
-x:将使用用的脚本内容显示到屏幕上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值