shell高级编程之shell脚本执行与规范
实例:
#!/bin/bash #清除日志脚本 (#!又称为幻数)
LOG_DIR=/var/log
ROOT_UID=0 #$UID为0的时候,用户才具有root用户的权限#要使用root用户来运行
if [ $UID -ne $ROOT_UID ]
then
echo Must be root to run this script.
exit 1
fi
cd $LOG_DIR || {
echo Cannot change to necessary directory . 2
exit 1
}
查看默认
shell $SHELL
grep root /etc/passwd
shell脚本运行时,先查找环境变量ENV ,该变量指定一个环境文件 (通常为 .bashrc)
读取文件后开始执行脚本 执行脚本的三种方式
bash script-name 或sh script-name推荐使用
脚本本身没有执行权限 及文件x位为- 号或者开头没有指定解释器,推荐
path/script-name或 ./script-name当前路径下执行脚本
需要先将脚本文件的权限改为可执行 chmod +x script-name 或chmod 755 script-name
推荐第一种代替
source script-name 或 . script-name #--注意. 点号
脚本当中加载另一个脚本时使用 ,会把父shell的运行传到子shell中来
例:
cat test.sh -- echo I am weige
cat test.sh
1)sh test.sh bash test.sh
2)./test.sh ? chmod 755 test.sh ? ./test.sh
3)source test.sh . test.sh
例:验证第三种方法用途:
echo userdir=`pwd` testsource.sh
cat testsource.sh
sh testsource.sh echo $userdir
. testsource.sh echo $userdir
#当前的窗口是一个shell,脚本又是另外一个shell,第一二种方法不会把定义传到当前shell命令行
# 用.号加载,就可以把定义传到当前shell命令行当中来,所以就可以echo
Shell脚本开发基本规范和习惯
开头指定脚本解释器
1.#!/bin/bash 或#!/bin/sh
开头加载版本版权等信息
可配置vim编辑文件时自动加上以上信息,方法是修改~./vimrc配置文件
2.脚本中尽量不要用中文注释
3.脚本已.sh为扩展名 例:script-name.sh
4.代码书写优秀习惯:成对内容一次书写 【[] {} “” ‘’ ``】
[ ]括号两端要有空格
流程控制语句一次书写完成
如if/for 语句格式一次写完,在书写内容
if 条件内容 for
Then 内容 do 内容
Fi done
通过缩进让代码更易读
变量基础及深入
环境变量 (全局变量)
局部变量
常见环境变量:
$PATH:决定了shell将到哪些目录中寻找命令或程序$PATH:决定了shell将到哪些目录中寻找命令或程序$HOME:当前用户主目录$MAIL:是指当前用户的邮件存放目录.$SHELL:是指当前用户用的是哪种Shell. $HISTSIZE:是指保存历史命令记录的条数$LOGNAME:是指当前用户的登录名. $HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的. $LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量.$PS1:是基本提示符,对于root用户是#,对于普通用户是$,也可以使用一些更复杂的值.$PS2:是附属提示符,默认是“”.可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My NewPrompt :) ”. $IFS:输入域分隔符.当shell读取输入时,用来分隔单词的一组字符,它们通常是空格、制表符和换行符.$0:shell脚本的名字.
例如,在我的Linux系统中:
$ echo $0
/bin/bash$#: 传递给脚本的参数个数. $$:shell脚本的进程号,脚本程序通常会用它生成一个唯一的临时文件,如/tmp/tmfile_$$
例如,在我的Linux系统中:
$
您可能关注的文档
最近下载
- 肌肉骨骼康复学第三版.pptx
- 2025及未来5年中国薰衣草干花市场数据分析及竞争策略研究报告.docx
- 2025ACC专家共识声明:心包炎的诊断和管理解读PPT课件.pptx VIP
- 2023-2024学年安徽省合肥市包河区七年级(上)期中地理试卷.docx VIP
- 市中级人民法院党组书记、院长关于2024年度民主生活会个人对照检视剖析材料.docx VIP
- 花篮拉杆式悬挑脚手架施工技术方案.docx VIP
- 人教版智培学校生活语文五年级上册第5课《什么美》教学设计.doc
- 招录事业编人员政审表.doc VIP
- 企业食堂从业人员管理培训课件.pptx VIP
- 版权产业在2025年市场动态分析及未来五年前景展望报告.docx
原创力文档

文档评论(0)