Linux shell入门基础(六),linuxshell入门基础


六、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/bashecho $1 \$1echo $2 \$2echo $3 \$3echo $# \$\#echo $? \$\?echo $$ \$\$wq#chmod a+x a#./a$1$2$30 $#(输入多少个参数)0 $?3061 $$#./a aaa bbb cccaaa $1bbb $2ccc $34 $#0 $?3064 $$#vi b#!/bin/bashecho stop $1 $2ing ……#./b httpd stophttp stoping……#read读入数据给变量#echo 输出数据#printf输出数据#vi a#!/bin/bashecho $1(做输入) \$1echo $2 (做输入)\$2echo $3 (做输入)\$3echo $# (查看有几个参数)\$\#echo $?(shell的命令是否成功执行,不成功则,执行其他) \$\?echo $$ \$\$read -p "please input your name" AAAprinf "$AAA is fool"#./a aaa bbb cccaaa $1bbb $2ccc $34 $#0 $?3064 $$please input your name:byfbyf is fool#printf "\t hello\n" hello#help printf#man bash……:printf#printf "\a"(产生一个声音)04.bash的执行方式1.输入脚本的绝对路径或者相对路径/root/bachup./bachup2.bash脚本或tcsh及脚本,找子shell来执行表示以bash或tcsh来执行脚本bash /root/backup3.在脚本的路径前加“.”,表示某个路径下有一个脚本../backup. /root/backup#vi bpstree |grep -A2 -B2 pstreebash--pstree#pstree |grep -A2 -B2 pstree#bash ./bbash--bash--pstree#chmod a+x bbash--bash--pstree#vi bexport BBB=byf(将BBB设置成byf目录及子目录下的环境变量)wq#cat bexport BBB#./bpstree |grep -A2 -B2 pstre#echo BBB#. /tmp/b(在当前shell脚本中执行)#. ./b#echo $BBB(取出BBB的变量值)byf

相关内容