六、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. 【面霸1】php知识点

    PHP简介 Hypertext Preprocessor,超文本预处理器的缩写,主要是用于服务端的脚本程序 PHP 标记风格 1.xml风格   < ? php ? > 2.脚本风格  & ...

  2. JS 获取各个宽度和高度

    IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.d ...

  3. 安装search everything中文语言包

    Everything 作为很多人的必备工具,特写这篇文章,一方面让想使用国外优秀软件的英语小白有一段过渡期,另一方面也为自己整理下资料.当然,这个可不是不学好英语的正当理由. 步骤: 1. 下载好se ...

  4. Rust语言:安全地并发

    http://www.csdn.net/article/2014-02-26/2818556-Rust http://www.zhihu.com/question/20032903 Rust是近两年M ...

  5. Windows Phone 8 SQL Server CE 数据库

    员工信息表 EmployeeTable.cs using System.Data.Linq.Mapping; using System.ComponentModel; namespace SQLSer ...

  6. SharePoint 2013 WebTemplates

    SharePoint 2013 WebTemplates You are here: Home / SharePoint 2013 WebTemplates   January 24, 2013 Ta ...

  7. Android模拟器(出错问题)Intel X86 没法用!!!

    前提: CPU 支持 VT (Virtualization Technology), 而且仅限于 Intel CPU 首先要打开SDK Manager 下载intel haxm,下载位置: andro ...

  8. LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)

    一.概述 LVS作用:实现负载均衡 Keepalived作用:监控集群系统中各个服务节点的状态,HA cluster. 配置LVS有两种方式: 1. 通过ipvsadm命令行方式配置 2. 通过Red ...

  9. pgAdminIII使用图解

    原文地址:http://www.2cto.com/database/201312/267218.html pgAdmin III简介 要打开一个到服务的连接,在树中选择所需的服务,并双击它,或使用“工 ...

  10. 例6.1:学生选课系统设计(界面设计、类图、数据库ER图)