版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实例:#!/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 ." >&2exit 1 查看默认sh
2、ell $SHELL grep root /etc/passwd shell脚本运行时,先查找环境变量ENV ,该变量指定一个环境文件 (通常为 .bashrc)读取文件后开始执行脚本 执行脚本的三种方式1. bash script-name 或sh script-name推荐使用脚本本身没有执行权限 及文件x位为- 号或者开头没有指定解释器,推荐2. path/script-name或 ./script-name当前路径下执行脚本需要先将脚本文件的权限改为可执行 chmod +x script-name 或chmod 755 script-name推荐第一种代替3. source scrip
3、t-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.shcat test
4、source.sh sh testsource.shecho $userdir . testsource.shecho $userdir #当前的窗口是一个shell,脚本又是另外一个shell,第一二种方法不会把定义传到当前shell命令行 # 用.号加载,就可以把定义传到当前shell命令行当中来,所以就可以echoShell脚本开发基本规范和习惯开头指定脚本解释器1.#!/bin/bash 或#!/bin/sh 开头加载版本版权等信息可配置vim编辑文件时自动加上以上信息,方法是修改./vimrc配置文件2.脚本中尽量不要用中文注释3.脚本已.sh为扩展名 例:script-name.s
5、h 4.代码书写优秀习惯:成对内容一次书写 【 “” 】 括号两端要有空格流程控制语句一次书写完成 如if/for 语句格式一次写完,在书写内容 if 条件内容 for Then 内容 do 内容 Fi done通过缩进让代码更易读变量基础及深入 环境变量 (全局变量)局部变量 常见环境变量:$PATH:决定了shell将到哪些目录中寻找命令或程序$PATH:决定了shell将到哪些目录中寻找命令或程序$HOME:当前用户主目录$MAIL:是指当前用户的邮件存放目录.$SHELL:是指当前用户用的是哪种Shell. $HISTSIZE:是指保存历史命令记录的条数$LOGNAME:是指当前用户的
6、登录名. $HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的. $LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量.$PS1:是基本提示符,对于root用户是#,对于普通用户是$,也可以使用一些更复杂的值.$PS2:是附属提示符,默认是“>”.可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My NewPrompt :) ”. $IFS:输入域分隔符.当shell读取输入时,用来分隔单词的一组字符,它们通常是空格、制表符和换行符.$0:shell脚本的名字.例
7、如,在我的Linux系统中:$ echo $0/bin/bash$#:传递给脚本的参数个数.$:shell脚本的进程号,脚本程序通常会用它生成一个唯一的临时文件,如/tmp/tmfile_$例如,在我的Linux系统中: $ echo $31038 #表示当前shell进程号为31038设置环境变量的三种方法:1、 export 变量名=value export NAME=weige 2、 变量名=value; export变量名NAME=weige; export NAME3、declare x 变量名=value Declare x NAME=weige 自定义环境变量生产环境Java环境
8、配置实例:tomcat,resin.csvn,hadoop 用env (printenv)或set显示默认的环境变量 用unset消除本地变量和环境变量,临时生效永久生效:写入配置文件 /etc/profile 局部变量: 字母,数字,下划线1、 普通字符串变量定义变量名=value 直接定义变量内容,内容一般为简单连续的数字、字符串和路径名变量名=value 引号里面是什么就输出什么,即使内容包含变量也会把变量名原样输出,适合定义显示纯字符串变量名=”value”引号里面的内容会解析后输出该变量内容,适合语字符串中附带有变量的内容的定义习惯:数字不加引号,其他默认加双引号范例:经过反引号的d
9、ate命令测试范例:变量定以后,调用时测试特殊情况:AWK刚好相反2.把一个命令作为 生产环境常见应用Shell特殊环境变量1、 位置变量$0获取当前执行shell脚本的文件名,包括脚本路径 常用$n获取当前执行的shell脚本的滴n个参数值,n=1.9,当n为0时表示脚本的文件名,如果大于9,用大括号括起来$10 常用$*获取当前shell的所有参数,将所有的命令行参数视为单个字符串,相当于”$1$2$3”注意与$#的区别 (用处不多)$#获取当前shell命令中参数的总个数 常用$ 这个程序的所有参数“$1”$2”$3”.”,这是将参数传递给其他程序的最佳方式,因为他会保留内嵌在每个参数里的任何空白查看系统 进程状态变量 $获取当前shell的进程号(PID)$!执行上一个指令的PID$?获取执行上一个指令的返回值0 表示运行成功2 权限拒绝1125 表示运行失败,脚
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 收支审计制度
- 教育培训基地相关制度
- 教务主管绩效考核制度
- 教育培训学校安全制度
- 教育培训机构奖章制度
- 教育培训监控制度
- 教育培训规章制度大全
- 教育扶贫培训制度
- 文化旅游内部审计制度
- 新媒体教育培训制度
- 2025年陕西秦创原(咸阳)创新促进中心面向社会公开招聘12人笔试参考题库附带答案详解
- 2026年六安职业技术学院单招职业适应性考试题库及答案详解(新)
- 2025年江西传媒职业学院单招综合素质考试试题及答案解析
- 2026年大学生寒假社会实践报告(一)
- 2025年6月英语六级真题及答案-第2套
- (2026春新版)北师大版三年级数学下册全册教案(教学设计)
- 2026年及未来5年市场数据中国福建省乡村旅游行业发展监测及投资战略规划报告
- GB/T 46992-2025可回收利用稀土二次资源分类与综合利用技术规范
- 2026年公务员申论预测模拟题与答题技巧
- 2026浙江杭州萧山区公安分局招聘警务辅助人员5人备考题库(含答案详解)
- 融合多传感器技术的校园田径运动会智能成绩采集系统设计课题报告教学研究课题报告
评论
0/150
提交评论