您的位置:首页 > 运维架构 > Shell

Linux——shell script

2016-12-08 10:11 204 查看
一、应当包含的内容

1、第一行声明这个script使用的shell类型
#!/bin/bash
2、程序内容的说明
#Progranm:
3、创建日期、版本
#History:
4、主要环境变量的声明
 
5、主程序部分
 
6、告知执行结果
exit 0(或其他)
 
二、编写的script的执行方式

1、按路径执行
绝对路径;
相对路径;
根据PATH中的路径,此时shell.sh应当在PATH指定的目录内,如~/bin/
注意:对shell.sh应当有r和w权限

2、以bash进程执行
sh shell.sh
注意:对shell.sh有r权限;
且当前目录存放有shell.sh
3、利用source执行
source shell.sh
注意:与前两个不同,这里是在父进程中执行,script中声明的变量在父进程中还能使用
 
三、相关语句与特有信息

1、默认变量($0,$1,$2
… )
其中$0为命令的名称,$1,$2
… 为默认参数,在脚本中可以直接使用
$#:代表后面接的参数个数;
$@:代表默认变量"$1"、"$2"、"$3"、"$4"
 
2、利用function功能
函数
格式:
function
函数名 ( ) {
程序段
}
3、追踪与调试
sh […]
脚本文件
-n:不执行,仅检查语法
-v:在执行script前,将脚本内容输出到屏幕上
-x:不仅显示每步的执行代码,还将显示每一步的执行结果
2、判断式
1、命令test
文件类型的判断:
-e:文件是否存在
-f:是否为文件
-d:是否为目录
文件的权限检测:
-r:可读权限
-w:可写权限
-x:可执行权限

 
2、判断符号[]
//在命令中,[]就是test,可用test中的相关参数
变量一双引号括起来;
[每个组件之间均有空格]:
[ "$HOME" == "mail" ]
3、条件判断式
if … fi
格式:
if[
条件判断式 ];then
执行的命令
elif[
条件判断式 ];then
执行的命令
else
执行的命令
fi
 
case … esac
格式:
case
变量名 in
  "第一个变量内容" )
程序段

;;
  "第二个变量内容" )
程序段

;;
  ….
  "最后一个变量内容" )

exit 1

;;
esac
4、循环
不定循环 while do done
while [ condition ]
do
程序段落
done
 
固定循环 for … do … done
for
变量名 in con1 con2 con3 …
do
程序段
done
或者:
for
变量名 in $( seq 1 100 )
do


done
或者:
for ( ( i=1; i<$变量名; i=i+1 ) )
do


done
见P381
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 命令