六、Shell脚本编程详解
将上述五部分的内容,串联起来,增加对Shell的了解
01.shell脚本
shell:
#
#perl
#python
#php
#jsp
不同的脚本执行不同的文本,执行的角色是不一样的;
#shell scripts(UNIX Like系统的原则有一条:程序越短越好)
#bash csh tcsh ksh
#which startx(查看文件的路径)
/usr/X11R6/bin/startx
#vi `which startx`
#!/bin/sh
……
#vi /etc/rc.d/rc.sysinit
(修改系统名,颜色等属性)
#echo $SHELL
/bin/bash
脚本中的#表示注释,但第一行中的#有特殊的意义:
如:第一行字符非#,表示这是一个bash脚本
第一行中是#,但第二个字符不是i,表示这是一个csh脚本
第一行字符是#,且第二个字符是!,表示调用其后指定
的/usr/bin/python2.2程序来执行以下这个脚本
02.shell中正则表达式
bash本身不提供正则表示式的支持,只支持通配符* ?
正则表达式可以通过一些命令去执行,比如grep,vi,sed,awk
比如Linux shell入门基础(二)中的介绍
03.与shell脚本的交互
#cd /tmp/ddd/
#ls
……
#rm -rf *
#vi a
#!/bin/bash
echo $1 \$1
echo $2 \$2
echo $3 \$3
echo $# \$\#
echo $? \$\?
echo $$ \$\$
wq
#chmod a+x a
#./a
$1
$2
$3
0 $#(输入多少个参数)
0 $?
3061 $$
#./a aaa bbb ccc
aaa $1
bbb $2
ccc $3
4 $#
0 $?
3064 $$
#vi b
#!/bin/bash
echo stop $1 $2ing ……
#./b httpd stop
http stoping……
#read读入数据给变量
#echo 输出数据
#printf输出数据
#vi a
#!/bin/bash
echo $1(做输入) \$1
echo $2 (做输入)\$2
echo $3 (做输入)\$3
echo $# (查看有几个参数)\$\#
echo $?(shell的命令是否成功执行,不成功则,执行其他) \$\?
echo $$ \$\$
read -p "please input your name" AAA
prinf "$AAA is fool"
#./a aaa bbb ccc
aaa $1
bbb $2
ccc $3
4 $#
0 $?
3064 $$
please input your name:byf
byf is fool
#printf "\t hello\n"
hello
#help printf
#man bash
……
:printf
#printf "\a"
(产生一个声音)
04.bash的执行方式
1.输入脚本的绝对路径或者相对路径
/root/bachup
./bachup
2.bash脚本或tcsh及脚本,找子shell来执行
表示以bash或tcsh来执行脚本
bash /root/backup
3.在脚本的路径前加“.”,表示某个路径下有一个脚本
../backup
. /root/backup
#vi b
pstree |grep -A2 -B2 pstree
bash--pstree
#pstree |grep -A2 -B2 pstree
#bash ./b
bash--bash--pstree
#chmod a+x b
bash--bash--pstree
#vi b
export BBB=byf(将BBB设置成byf目录及子目录下的环境变量)
wq
#cat b
export BBB
#./b
pstree |grep -A2 -B2 pstre
#echo BBB
#. /tmp/b(在当前shell脚本中执行)
#. ./b
#echo $BBB(取出BBB的变量值)
byf

Linux shell入门基础(六)的更多相关文章

  1. Linux shell入门基础(一)

    Linux shell入门基础(一): 01.增加删除用户: #useradd byf   userdel byf(主目录未删除)  userdel -r byf   该用户的属性:usermod 用 ...

  2. Linux shell入门基础(八)

    八.shell脚本sed&awk 01.sed的使用 流编辑器-Steam Editor #ed /etc/passwd 1,10p …… 1s/root/byf/p(替换root为byf) ...

  3. Linux shell入门基础(五)

    五.bash运算及启动脚本 01.使用bash的命令历史 #history …… #set(显示所有的变量) | grep HIS HISTFILE=/root/.bash_history HISTF ...

  4. Linux shell入门基础(三)

    三.输入输出重定向及管道 01.过滤器   Linux过滤器分三种:     1.过滤器(重定向只对过滤器有作用) #gzip a(将a作为输入源,涉及到输入输出)     2.编辑器     3.交 ...

  5. Linux shell入门基础(二)

    二.shell对文本的操作 01.查看文本的命令 #cat /etc/passwd(并非对文本文件操作) #tail -5 /etc/passwd(查看末尾5行) #tail -f /var/log/ ...

  6. Linux shell入门基础(七)

    七.bash脚本中的流程控制   条件判断控制   -[]([]中的表达式是否为真)  &&(前边的结果是true的时候执行后边的命令)   ||(前边的结果是false的时候执行后边 ...

  7. Linux shell入门基础(四)

    四.进程优先级前台后台 01.进程控制 #find /name aaa & #ps aux | grep find #updatedb &  #ps aux | grep update ...

  8. 1)Linux程序设计入门--基础知识

    )Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makef ...

  9. Linux shell脚本基础学习详细介绍(完整版)二

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

随机推荐

  1. hbase 0.96 单机伪分布式配置文件及遇到的问题 find命令

    http://www.apache.org/dyn/closer.cgi/hbase/ 国外的站点下载速度慢,可以考虑国内的镜像网站~ 前面已经部署好了hadoop2.2.0单机伪分布式.必须先安装h ...

  2. js plugin

    http://site518.net/javascript-date-handle/ http://developer.51cto.com/art/201212/374902.htm http://e ...

  3. Parallax

    常听说牛人都是jquery插件用得很好的人. 现在有了github,英文过关的话什么好东西下不到啊,再不用去浏览那些抄来抄去骗人看广告的垃圾网站了. 扯远点,本人有严重的熊猫眼,所以用一种叫倦眼充电棒 ...

  4. Cortex-M0 LPC1114中断优先级怎么设置

    LPC1114的中断,由中断控制模块NVIC控制.一共32个中断,每个中断的优先级可编程为 0~3 四种级别.级别越高对应的优先级越低.因此,级别0 是最高的中断优先级. 设置中断优先级的函数,CMI ...

  5. SIM卡基础知识

    一:了解Sim卡和GSM网络登录步骤的基本知识 (一)名词解释: SIM卡(Subscriber Identity Module),即用户识别卡,它是一张符合GSM规范的“智慧卡”,SIM卡有大小之分 ...

  6. 把消息送到默认窗口函数里,并非一点用都没有,可能会产生新的消息(以WM_WINDOWPOSCHANGED为例)

    我在追踪执行: procedure TForm1.Button1Click(Sender: TObject); begin panel1.Left:=panel1.Left-; end; 并且屏蔽TW ...

  7. 我的VSTO之路(三):Word基本知识

    原文:我的VSTO之路(三):Word基本知识 在前一篇文章中,我初步介绍了如何如何开发一个VSTO程序,在本文中,我将进一步深入介绍Word的插件开发.Word是一个大家在日常工作中一直接触的文档工 ...

  8. c++ explicit

    C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢? 如果c++类 ...

  9. oralce 仅配置精简客户端 连接plsql ( 版本需一直,要不都是32要不是都是64)

    1.Oracle服务器已经安装完成,版本10.2.0. 2.访问www.oracle.com,下载Oracle精简客户端. 下载页面地址:http://www.oracle.com/technetwo ...

  10. 怒刷BZOJ记录(一)1001~1037

    我实在是太弱了...不滚粗只能刷BZOJ了...这里来记录每天刷了什么题吧. 2015-7-9 : 1001[BeiJing2006]狼抓兔子                 | 最大流练习(呃..其 ...