六、Shell腳本編程詳解將上述五部分的內容,串聯起來,增加對Shell的瞭解01.shell腳本shell:##perl#python#php#jsp不同的腳本執行不同的文本,執行的角色是不一樣的;#shell scripts(UNIX Like系統的原則有一條:程式越短越好)#bash csh
六、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