锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品九九亚洲精品天堂,亚洲AV无码专区国产乱码不卡,亚洲综合色区中文字幕http://www.tkk7.com/liubowu/category/19058.html鐢熶簬蹇ф偅,姝諱簬瀹変箰zh-cnTue, 27 Feb 2007 11:44:55 GMTTue, 27 Feb 2007 11:44:55 GMT60linux shell 鑴氭湰鍏ラ棬 http://www.tkk7.com/liubowu/archive/2007/02/11/99317.html灝忚濺椹?/dc:creator>灝忚濺椹?/author>Sun, 11 Feb 2007 14:45:00 GMThttp://www.tkk7.com/liubowu/archive/2007/02/11/99317.htmlhttp://www.tkk7.com/liubowu/comments/99317.htmlhttp://www.tkk7.com/liubowu/archive/2007/02/11/99317.html#Feedback0http://www.tkk7.com/liubowu/comments/commentRss/99317.htmlhttp://www.tkk7.com/liubowu/services/trackbacks/99317.html linux聽shell聽鑴氭湰鍏ラ棬

By聽浜虹敓鐧懼懗 鍙戣〃浜?2006-3-1 13:01:00
-- 鎴戜滑鐨勬妧鏈槸浣犵殑錛?a target="_blank">www.icwin.net

1. Linux 鑴氭湰緙栧啓鍩虹
1.1 璇硶鍩烘湰浠嬬粛
1.1.1 寮澶?br />紼嬪簭蹇呴』浠ヤ笅闈㈢殑琛屽紑濮嬶紙蹇呴』鏂瑰湪鏂囦歡鐨勭涓琛岋級錛?
#!/bin/sh
銆銆絎﹀彿#!鐢ㄦ潵鍛婅瘔緋葷粺瀹冨悗闈㈢殑鍙傛暟鏄敤鏉ユ墽琛岃鏂囦歡鐨勭▼搴忋傚湪榪欎釜渚嬪瓙涓垜浠嬌鐢?bin/sh鏉ユ墽琛岀▼搴忋?
銆銆褰撶紪杈戝ソ鑴氭湰鏃訛紝濡傛灉瑕佹墽琛岃鑴氭湰錛岃繕蹇呴』浣垮叾鍙墽琛屻?
銆銆瑕佷嬌鑴氭湰鍙墽琛岋細
緙栬瘧 chmod +x filename 榪欐牱鎵嶈兘鐢?/filename 鏉ヨ繍琛?br />
1.1.2 娉ㄩ噴
銆銆鍦ㄨ繘琛宻hell緙栫▼鏃訛紝浠?寮澶寸殑鍙ュ瓙琛ㄧず娉ㄩ噴錛岀洿鍒拌繖涓琛岀殑緇撴潫銆傛垜浠湡璇氬湴寤鴻鎮ㄥ湪紼嬪簭涓嬌鐢ㄦ敞閲娿?br />濡傛灉鎮ㄤ嬌鐢ㄤ簡娉ㄩ噴錛岄偅涔堝嵆浣跨浉褰撻暱鐨勬椂闂村唴娌℃湁浣跨敤璇ヨ剼鏈紝鎮ㄤ篃鑳藉湪寰堢煭鐨勬椂闂村唴鏄庣櫧璇ヨ剼鏈殑浣滅敤
鍙婂伐浣滃師鐞嗐?br />
-- 鎴戜滑鐨勬妧鏈槸浣犵殑錛?a target="_blank">www.icwin.net

1.1.3 鍙橀噺
銆銆鍦ㄥ叾浠栫紪紼嬭璦涓偍蹇呴』浣跨敤鍙橀噺銆傚湪shell緙栫▼涓紝鎵鏈夌殑鍙橀噺閮界敱瀛楃涓茬粍鎴愶紝騫朵笖鎮ㄤ笉闇瑕佸鍙橀噺
榪涜澹版槑銆傝璧嬪肩粰涓涓彉閲忥紝鎮ㄥ彲浠ヨ繖鏍峰啓錛?
#!/bin/sh
#瀵瑰彉閲忚祴鍊鹼細
a="hello world"
# 鐜板湪鎵撳嵃鍙橀噺a鐨勫唴瀹癸細
echo "A is:"
echo $a
鏈夋椂鍊欏彉閲忓悕寰堝鏄撲笌鍏朵粬鏂囧瓧娣鋒穯錛屾瘮濡傦細
num=2
echo "this is the $numnd"
榪欏茍涓嶄細鎵撳嵃鍑?this is the 2nd"錛岃屼粎浠呮墦鍗?this is the "錛屽洜涓簊hell浼氬幓鎼滅儲鍙橀噺numnd鐨勫鹼紝
浣嗘槸榪欎釜鍙橀噺鏃舵病鏈夊肩殑銆傚彲浠ヤ嬌鐢ㄨ姳鎷彿鏉ュ憡璇塻hell鎴戜滑瑕佹墦鍗扮殑鏄痭um鍙橀噺錛?
num=2
echo "this is the ${num}nd"
銆銆榪欏皢鎵撳嵃錛?this is the 2nd

1.1.4 鐜鍙橀噺
鐢眅xport鍏抽敭瀛楀鐞嗚繃鐨勫彉閲忓彨鍋氱幆澧冨彉閲忋傛垜浠笉瀵圭幆澧冨彉閲忚繘琛岃璁猴紝鍥犱負閫氬父鎯呭喌涓嬩粎浠呭湪鐧誨綍
鑴氭湰涓嬌鐢ㄧ幆澧冨彉閲忋?

1.1.5 Shell鍛戒護鍜屾祦紼嬫帶鍒?br />鍦╯hell鑴氭湰涓彲浠ヤ嬌鐢ㄤ笁綾誨懡浠わ細
1)Unix 鍛戒護:
銆銆铏界劧鍦╯hell鑴氭湰涓彲浠ヤ嬌鐢ㄤ換鎰忕殑unix鍛戒護錛屼絾鏄繕鏄敱涓浜涚浉瀵規洿甯哥敤鐨勫懡浠ゃ傝繖浜涘懡浠ら氬父鏄敤鏉?br />榪涜鏂囦歡鍜屾枃瀛楁搷浣滅殑銆?
甯哥敤鍛戒護璇硶鍙婂姛鑳?
銆銆echo "some text": 灝嗘枃瀛楀唴瀹規墦鍗板湪灞忓箷涓?
銆銆ls: 鏂囦歡鍒楄〃
銆銆wc 鈥搇 filewc -w filewc -c file: 璁$畻鏂囦歡琛屾暟璁$畻鏂囦歡涓殑鍗曡瘝鏁拌綆楁枃浠朵腑鐨勫瓧絎︽暟
銆銆cp sourcefile destfile: 鏂囦歡鎷瘋礉
銆銆mv oldname newname : 閲嶅懡鍚嶆枃浠舵垨縐誨姩鏂囦歡
銆銆rm file: 鍒犻櫎鏂囦歡
銆銆grep 'pattern' file: 鍦ㄦ枃浠跺唴鎼滅儲瀛楃涓叉瘮濡傦細grep 'searchstring' file.txt
銆銆cut -b colnum file: 鎸囧畾嬈叉樉紺虹殑鏂囦歡鍐呭鑼冨洿錛屽茍灝嗗畠浠緭鍑哄埌鏍囧噯杈撳嚭璁懼姣斿錛氳緭鍑?br />姣忚絎?涓埌絎?涓瓧絎ut -b5-9 file.txt鍗冧竾涓嶈鍜宑at鍛戒護娣鋒穯錛?br />榪欐槸涓や釜瀹屽叏涓嶅悓鐨勫懡浠?
銆銆cat file.txt: 杈撳嚭鏂囦歡鍐呭鍒版爣鍑嗚緭鍑鴻澶囷紙灞忓箷錛変笂
銆銆file somefile: 寰楀埌鏂囦歡綾誨瀷
銆銆read var: 鎻愮ず鐢ㄦ埛杈撳叆錛屽茍灝嗚緭鍏ヨ祴鍊肩粰鍙橀噺
銆銆sort file.txt: 瀵筬ile.txt鏂囦歡涓殑琛岃繘琛屾帓搴?
銆銆uniq: 鍒犻櫎鏂囨湰鏂囦歡涓嚭鐜扮殑琛屽垪姣斿錛?sort file.txt | uniq
銆銆expr: 榪涜鏁板榪愮畻Example: add 2 and 3expr 2 "+" 3
銆銆find: 鎼滅儲鏂囦歡姣斿錛氭牴鎹枃浠跺悕鎼滅儲find . -name filename -print
銆銆tee: 灝嗘暟鎹緭鍑哄埌鏍囧噯杈撳嚭璁懼(灞忓箷) 鍜屾枃浠舵瘮濡傦細somecommand | tee outfile
銆銆basename file: 榪斿洖涓嶅寘鍚礬寰勭殑鏂囦歡鍚嶆瘮濡傦細 basename /bin/tux灝嗚繑鍥?tux
銆銆dirname file: 榪斿洖鏂囦歡鎵鍦ㄨ礬寰勬瘮濡傦細dirname /bin/tux灝嗚繑鍥?/bin
銆銆head file: 鎵撳嵃鏂囨湰鏂囦歡寮澶村嚑琛?
銆銆tail file : 鎵撳嵃鏂囨湰鏂囦歡鏈熬鍑犺
銆銆sed: Sed鏄竴涓熀鏈殑鏌ユ壘鏇挎崲紼嬪簭銆傚彲浠ヤ粠鏍囧噯杈撳叆錛堟瘮濡傚懡浠ょ閬擄級璇誨叆鏂囨湰錛屽茍灝?br />緇撴灉杈撳嚭鍒版爣鍑嗚緭鍑猴紙灞忓箷錛夈傝鍛戒護閲囩敤姝e垯琛ㄨ揪寮忥紙瑙佸弬鑰冿級榪涜鎼滅儲銆?
涓嶈鍜宻hell涓殑閫氶厤絎︾浉娣鋒穯銆傛瘮濡傦細灝唋inuxfocus 鏇挎崲涓?
LinuxFocus 錛歝at text.file | sed 's/linuxfocus/LinuxFocus/' > newtext.file
銆銆awk: awk 鐢ㄦ潵浠庢枃鏈枃浠朵腑鎻愬彇瀛楁銆傜己鐪佸湴錛屽瓧孌靛垎鍓茬鏄┖鏍鹼紝鍙互浣跨敤-F鎸囧畾鍏朵粬鍒嗗壊絎︺?br />cat file.txt | awk -F, '{print $1 "," $3 }'榪欓噷鎴戜滑浣跨敤錛屼綔涓哄瓧孌靛垎鍓茬錛屽悓鏃舵墦鍗?br />絎竴涓拰絎笁涓瓧孌點傚鏋滆鏂囦歡鍐呭濡備笅錛?Adam Bor, 34, IndiaKerry Miller, 22, USA
鍛戒護杈撳嚭緇撴灉涓猴細Adam Bor, IndiaKerry Miller, USA
2) 姒傚康: 綆¢亾, 閲嶅畾鍚戝拰 backtick
銆銆榪欎簺涓嶆槸緋葷粺鍛戒護錛屼絾鏄粬浠湡鐨勫緢閲嶈銆?br />
銆銆綆¢亾 (|) 灝嗕竴涓懡浠ょ殑杈撳嚭浣滀負鍙﹀涓涓懡浠ょ殑杈撳叆銆?
grep "hello" file.txt | wc -l
銆銆鍦╢ile.txt涓悳绱㈠寘鍚湁鈥漢ello鈥濈殑琛屽茍璁$畻鍏惰鏁般?
銆銆鍦ㄨ繖閲実rep鍛戒護鐨勮緭鍑轟綔涓簑c鍛戒護鐨勮緭鍏ャ傚綋鐒舵偍鍙互浣跨敤澶氫釜鍛戒護銆?
銆銆閲嶅畾鍚戯細灝嗗懡浠ょ殑緇撴灉杈撳嚭鍒版枃浠訛紝鑰屼笉鏄爣鍑嗚緭鍑猴紙灞忓箷錛夈?br />
銆銆> 鍐欏叆鏂囦歡騫惰鐩栨棫鏂囦歡
銆銆>> 鍔犲埌鏂囦歡鐨勫熬閮紝淇濈暀鏃ф枃浠跺唴瀹廣?

鍙嶇煭鏂滅嚎
銆 浣跨敤鍙嶇煭鏂滅嚎鍙互灝嗕竴涓懡浠ょ殑杈撳嚭浣滀負鍙﹀涓涓懡浠ょ殑涓涓懡浠よ鍙傛暟銆?br />鍛戒護錛?
find . -mtime -1 -type f -print
銆銆鐢ㄦ潵鏌ユ壘榪囧幓24灝忔椂錛?mtime 鈥?鍒欒〃紺鴻繃鍘?8灝忔椂錛夊唴淇敼榪囩殑鏂囦歡銆傚鏋滄偍
鎯沖皢鎵鏈夋煡鎵懼埌鐨勬枃浠舵墦涓涓寘錛屽垯鍙互浣跨敤浠ヤ笅鑴氭湰錛?
#!/bin/sh
# The ticks are backticks (`) not normal quotes ('):
tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`
3) 嫻佺▼鎺у埗
1.if
銆銆"if" 琛ㄨ揪寮?濡傛灉鏉′歡涓虹湡鍒欐墽琛宼hen鍚庨潰鐨勯儴鍒嗭細
if ....; then
銆 ....
elif ....; then
銆 ....
else
銆 ....
fi
澶у鏁版儏鍐典笅錛屽彲浠ヤ嬌鐢ㄦ祴璇曞懡浠ゆ潵瀵規潯浠惰繘琛屾祴璇曘傛瘮濡傚彲浠ユ瘮杈冨瓧絎︿覆銆佸垽鏂枃浠?br />鏄惁瀛樺湪鍙婃槸鍚﹀彲璇葷瓑絳夆?
銆銆閫氬父鐢? [ ] "鏉ヨ〃紺烘潯浠舵祴璇曘傛敞鎰忚繖閲岀殑絀烘牸寰堥噸瑕併傝紜繚鏂規嫭鍙風殑絀烘牸銆?
[ -f "somefile" ] 錛氬垽鏂槸鍚︽槸涓涓枃浠?
[ -x "/bin/ls" ] 錛氬垽鏂?bin/ls鏄惁瀛樺湪騫舵湁鍙墽琛屾潈闄?
[ -n "$var" ] 錛氬垽鏂?var鍙橀噺鏄惁鏈夊?
[ "$a" = "$b" ] 錛氬垽鏂?a鍜?b鏄惁鐩哥瓑
銆銆鎵цman test鍙互鏌ョ湅鎵鏈夋祴璇曡〃杈懼紡鍙互姣旇緝鍜屽垽鏂殑綾誨瀷銆?
銆銆鐩存帴鎵ц浠ヤ笅鑴氭湰錛?
#!/bin/sh
if [ "$SHELL" = "/bin/bash" ]; then
銆echo "your login shell is the bash (bourne again shell)"
else
銆echo "your login shell is not bash but $SHELL"
fi
銆銆鍙橀噺$SHELL鍖呭惈浜嗙櫥褰晄hell鐨勫悕縐幫紝鎴戜滑鍜?bin/bash榪涜浜嗘瘮杈冦?
蹇嵎鎿嶄綔絎?
鐔熸倝C璇█鐨勬湅鍙嬪彲鑳戒細寰堝枩嬈笅闈㈢殑琛ㄨ揪寮忥細
[ -f "/etc/shadow" ] && echo "This computer uses shadow passwors"
銆銆榪欓噷 && 灝辨槸涓涓揩鎹鋒搷浣滅錛屽鏋滃乏杈圭殑琛ㄨ揪寮忎負鐪熷垯鎵ц鍙寵竟鐨勮鍙ャ?br />鎮ㄤ篃鍙互璁や負鏄昏緫榪愮畻涓殑涓庢搷浣溿備笂渚嬩腑琛ㄧず濡傛灉/etc/shadow鏂囦歡瀛樺湪
鍒欐墦鍗扳?This computer uses shadow passwors鈥濄傚悓鏍鋒垨鎿嶄綔(||)鍦╯hell緙栫▼涓篃鏄?br />鍙敤鐨勩傝繖閲屾湁涓緥瀛愶細
#!/bin/sh
mailfolder=/var/spool/mail/james
[ -r "$mailfolder" ]' '{ echo "Can not read $mailfolder" ; exit 1; }
echo "$mailfolder has mail from:"
grep "^From " $mailfolder

璇ヨ剼鏈鍏堝垽鏂璵ailfolder鏄惁鍙銆傚鏋滃彲璇誨垯鎵撳嵃璇ユ枃浠朵腑鐨?From" 涓琛屻傚鏋滀笉鍙
鍒欐垨鎿嶄綔鐢熸晥錛屾墦鍗伴敊璇俊鎭悗鑴氭湰閫鍑恒傝繖閲屾湁涓棶棰橈紝閭e氨鏄垜浠繀欏繪湁涓や釜鍛戒護錛?
銆銆-鎵撳嵃閿欒淇℃伅
銆銆-閫鍑虹▼搴?
銆銆鎴戜滑浣跨敤鑺辨嫭鍙蜂互鍖垮悕鍑芥暟鐨勫艦寮忓皢涓や釜鍛戒護鏀懼埌涓璧蜂綔涓轟竴涓懡浠や嬌鐢ㄣ備竴鑸嚱鏁板皢鍦ㄤ笅鏂囨彁鍙娿?
銆銆涓嶇敤涓庡拰鎴栨搷浣滅錛屾垜浠篃鍙互鐢╥f琛ㄨ揪寮忎綔浠諱綍浜嬫儏錛屼絾鏄嬌鐢ㄤ笌鎴栨搷浣滅浼氭洿渚垮埄寰堝銆?br />
2.case

case :琛ㄨ揪寮忓彲浠ョ敤鏉ュ尮閰嶄竴涓粰瀹氱殑瀛楃涓詫紝鑰屼笉鏄暟瀛椼?
case ... in
...) do something here ;;
esac
銆銆璁╂垜浠湅涓涓緥瀛愩?file鍛戒護鍙互杈ㄥ埆鍑轟竴涓粰瀹氭枃浠剁殑鏂囦歡綾誨瀷錛屾瘮濡傦細
file lf.gz
銆銆榪欏皢榪斿洖錛?
lf.gz: gzip compressed data, deflated, original filename,
last modified: Mon Aug 27 23:09:18 2001, os: Unix
銆鎴戜滑鍒╃敤榪欎竴鐐瑰啓浜嗕竴涓彨鍋歴martzip鐨勮剼鏈紝璇ヨ剼鏈彲浠ヨ嚜鍔ㄨВ鍘媌zip2, gzip 鍜寊ip 綾誨瀷鐨勫帇緙╂枃浠訛細
#!/bin/sh
ftype=`file "$1"`
case "$ftype" in
"$1: Zip archive"*)
銆銆unzip "$1" ;;
"$1: gzip compressed"*)
銆銆gunzip "$1" ;;
"$1: bzip2 compressed"*)
銆銆bunzip2 "$1" ;;
*) echo "File $1 can not be uncompressed with smartzip";;
esac
銆銆鎮ㄥ彲鑳芥敞鎰忓埌鎴戜滑鍦ㄨ繖閲屼嬌鐢ㄤ簡涓涓壒孌婄殑鍙橀噺$1銆傝鍙橀噺鍖呭惈浜嗕紶閫掔粰璇ョ▼搴忕殑絎竴涓弬鏁板箋?br />涔熷氨鏄錛屽綋鎴戜滑榪愯錛?
smartzip articles.zip
$1 灝辨槸瀛楃涓?articles.zip

3. selsect
select 琛ㄨ揪寮忔槸涓縐峛ash鐨勬墿灞曞簲鐢紝灝ゅ叾鎿呴暱浜庝氦浜掑紡浣跨敤銆傜敤鎴峰彲浠ヤ粠涓緇勪笉鍚岀殑鍊間腑榪涜閫夋嫨銆?
select var in ... ; do
銆break
done
.... now $var can be used ....
涓嬮潰鏄竴涓緥瀛愶細
#!/bin/sh
echo "What is your favourite OS?"
select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do
銆銆銆銆break
done
echo "You have selected $var"
銆銆涓嬮潰鏄鑴氭湰榪愯鐨勭粨鏋滐細
What is your favourite OS?
1) Linux
2) Gnu Hurd
3) Free BSD
4) Other
#? 1
You have selected Linux

4.loop

loop琛ㄨ揪寮忥細
while ...; do
....
done
銆銆while-loop 灝嗚繍琛岀洿鍒拌〃杈懼紡嫻嬭瘯涓虹湡銆倃ill run while the expression that we test for is true.
鍏抽敭瀛?break" 鐢ㄦ潵璺沖嚭寰幆銆傝屽叧閿瓧鈥漜ontinue鈥濈敤鏉ヤ笉鎵ц浣欎笅鐨勯儴鍒嗚岀洿鎺ヨ煩鍒頒笅涓涓驚鐜?
銆銆
for-loop琛ㄨ揪寮忔煡鐪嬩竴涓瓧絎︿覆鍒楄〃 (瀛楃涓茬敤絀烘牸鍒嗛殧) 鐒跺悗灝嗗叾璧嬬粰涓涓彉閲忥細
for var in ....; do
銆 ....
done
鍦ㄤ笅闈㈢殑渚嬪瓙涓紝灝嗗垎鍒墦鍗癆BC鍒板睆騫曚笂錛?
#!/bin/sh
for var in A B C ; do
銆 echo "var is $var"
done
涓嬮潰鏄竴涓洿涓烘湁鐢ㄧ殑鑴氭湰showrpm錛屽叾鍔熻兘鏄墦鍗頒竴浜汻PM鍖呯殑緇熻淇℃伅錛?
#!/bin/sh
# list a content summary of a number of RPM packages
# USAGE: showrpm rpmfile1 rpmfile2 ...
# EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm
for rpmpackage in $*; do
銆if [ -r "$rpmpackage" ];then
銆銆echo "=============== $rpmpackage =============="
銆銆rpm -qi -p $rpmpackage
銆else
銆銆echo "ERROR: cannot read file $rpmpackage"
銆fi
done
銆銆榪欓噷鍑虹幇浜嗙浜屼釜鐗規畩鐨勫彉閲?*錛岃鍙橀噺鍖呭惈浜嗘墍鏈夎緭鍏ョ殑鍛戒護琛屽弬鏁板箋?br />濡傛灉鎮ㄨ繍琛宻howrpm openssh.rpm w3m.rpm webgrep.rpm
姝ゆ椂 $* 鍖呭惈浜?3 涓瓧絎︿覆錛屽嵆openssh.rpm, w3m.rpm and webgrep.rpm.


5. 寮曞彿
鍦ㄥ悜紼嬪簭浼犻掍換浣曞弬鏁頒箣鍓嶏紝紼嬪簭浼氭墿灞曢氶厤絎﹀拰鍙橀噺銆傝繖閲屾墍璋撴墿灞曠殑鎰忔濇槸紼嬪簭浼氭妸閫氶厤絎?br />錛堟瘮濡?錛夋浛鎹㈡垚鍚堥傜殑鏂囦歡鍚嶏紝瀹冨彉閲忔浛鎹㈡垚鍙橀噺鍊箋備負浜嗛槻 姝㈢▼搴忎綔榪欑鏇挎崲錛屾偍鍙互浣跨敤
寮曞彿錛氳鎴戜滑鏉ョ湅涓涓緥瀛愶紝鍋囪鍦ㄥ綋鍓嶇洰褰曚笅鏈変竴浜涙枃浠訛紝涓や釜jpg鏂囦歡錛?mail.jpg 鍜宼ux.jpg銆?
1.2 緙栬瘧SHELL鑴氭湰
#ch#!/bin/sh mod +x filename
銆顡玞ho *.jpg 鈭紦铻咁儫顚庢ⅱ閰澝堿惓娣欒?./filename 鏉ユ墽琛屾偍鐨勮剼鏈?
銆銆榪欏皢鎵撳嵃鍑?mail.jpg tux.jpg"鐨勭粨鏋溿?
銆 銆銆寮曞彿 (鍗曞紩鍙峰拰鍙屽紩鍙? 灝嗛槻姝㈣繖縐嶉氶厤絎︽墿灞曪細
#!/bin/sh
echo "*.jpg"
echo '*.jpg'
銆銆榪欏皢鎵撳嵃"*.jpg" 涓ゆ銆?
銆銆鍗曞紩鍙鋒洿涓ユ牸涓浜涖傚畠鍙互闃叉浠諱綍鍙橀噺鎵╁睍銆傚弻寮曞彿鍙互闃叉閫氶厤絎︽墿灞曚絾鍏佽鍙橀噺鎵╁睍銆?
#!/bin/sh
echo $SHELL
echo "$SHELL"
echo '$SHELL'
銆銆榪愯緇撴灉涓猴細
/bin/bash
/bin/bash
$SHELL
銆銆鏈鍚庯紝榪樻湁涓縐嶉槻姝㈣繖縐嶆墿灞曠殑鏂規硶錛岄偅灝辨槸浣跨敤杞箟瀛楃鈥斺斿弽鏂滄潌錛?
echo *.jpg
echo $SHELL
銆銆榪欏皢杈撳嚭錛?
*.jpg
$SHELL

6. Here documents -- 鎴戜滑鐨勬妧鏈槸浣犵殑錛?a target="_blank">www.icwin.net

褰撹灝嗗嚑琛屾枃瀛椾紶閫掔粰涓涓懡浠ゆ椂錛宧ere documents錛堣瘧鑰呮敞錛氱洰鍓嶈繕娌℃湁瑙佸埌榪囧璇ヨ瘝閫傚悎鐨勭炕璇戯級
涓縐嶄笉閿欑殑鏂規硶銆傚姣忎釜鑴氭湰鍐欎竴孌靛府鍔╂х殑鏂囧瓧鏄緢鏈夌敤鐨勶紝姝ゆ椂濡傛灉鎴戜滑鍥涙湁閭d釜 here documents
灝變笉蹇呯敤echo鍑芥暟涓琛岃杈撳嚭銆?涓涓?"Here document" 浠?<< 寮澶達紝鍚庨潰鎺ヤ笂涓涓瓧絎︿覆錛岃繖涓瓧絎︿覆
榪樺繀欏誨嚭鐜板湪here document鐨勬湯灝俱備笅闈㈡槸涓涓緥瀛愶紝鍦ㄨ渚嬪瓙涓紝鎴戜滑瀵瑰涓枃浠惰繘琛岄噸鍛藉悕錛屽茍涓?br />浣跨敤here documents鎵撳嵃甯姪錛?
#!/bin/sh
# we have less than 3 arguments. Print the help text:
if [ $# -lt 3 ] ; then
cat <
ren -- renames a number of files using sed regular expressions
USAGE: ren 'regexp' 'replacement' files...
EXAMPLE: rename all *.HTM files in *.html:
銆ren 'HTM$' 'html' *.HTM
HELP
銆exit 0
fi
OLD="$1"
NEW="$2"
# The shift command removes one argument from the list of
# command line arguments.
shift
shift
# $* contains now all the files:
for file in $*; do
銆銆if [ -f "$file" ] ; then
銆銆銆newfile=`echo "$file" | sed "s/${OLD}/${NEW}/g"`
銆銆銆if [ -f "$newfile" ]; then
銆銆銆銆echo "ERROR: $newfile exists already"
銆銆銆else
銆銆銆銆echo "renaming $file to $newfile ..."
銆銆銆銆mv "$file" "$newfile"
銆銆銆fi
銆銆fi
done
銆榪欐槸涓涓鏉備竴浜涚殑渚嬪瓙銆傝鎴戜滑璇︾粏璁ㄨ涓涓嬨傜涓涓猧f琛ㄨ揪寮忓垽鏂緭鍏ュ懡浠よ鍙傛暟鏄?br />鍚﹀皬浜?涓?(鐗規畩鍙橀噺$# 琛ㄧず鍖呭惈鍙傛暟鐨勪釜鏁? 銆傚鏋滆緭鍏ュ弬鏁板皬浜?涓紝鍒欏皢甯姪鏂囧瓧浼犻?br />緇檆at鍛戒護錛岀劧鍚庣敱cat鍛戒護灝嗗叾鎵撳嵃鍦ㄥ睆騫曚笂銆傛墦鍗板府鍔╂枃瀛楀悗紼嬪簭閫鍑恒?濡傛灉杈撳叆鍙傛暟絳?br />浜庢垨澶т簬3涓紝鎴戜滑灝卞皢絎竴涓弬鏁拌祴鍊肩粰鍙橀噺OLD錛岀浜屼釜鍙傛暟璧嬪肩粰鍙橀噺NEW銆備笅涓姝ワ紝鎴?br />浠嬌鐢╯hift鍛戒護灝嗙涓涓拰絎簩涓弬鏁頒粠 鍙傛暟鍒楄〃涓垹闄わ紝榪欐牱鍘熸潵鐨勭涓変釜鍙傛暟灝辨垚涓哄弬
鏁板垪琛?*鐨勭涓涓弬鏁般傜劧鍚庢垜浠紑濮嬪驚鐜紝鍛戒護琛屽弬鏁板垪琛ㄨ涓涓帴涓涓湴琚祴鍊肩粰鍙橀噺$file銆?br />鎺ョ潃鎴?浠垽鏂鏂囦歡鏄惁瀛樺湪錛屽鏋滃瓨鍦ㄥ垯閫氳繃sed鍛戒護鎼滅儲鍜屾浛鎹㈡潵浜х敓鏂扮殑鏂囦歡鍚嶃傜劧鍚?br />灝嗗弽鐭枩綰垮唴鍛戒護緇撴灉璧嬪肩粰newfile銆傝繖鏍鋒垜浠氨杈懼埌浜嗘垜浠殑鐩?鐨勶細寰楀埌浜嗘棫鏂囦歡鍚嶅拰鏂?br />鏂囦歡鍚嶃傜劧鍚庝嬌鐢╩v鍛戒護榪涜閲嶅懡鍚嶃?
4)鍑芥暟
濡傛灉鎮ㄥ啓浜嗕竴浜涚◢寰鏉備竴浜涚殑紼嬪簭錛屾偍灝變細鍙戠幇鍦ㄧ▼搴忎腑鍙兘鍦ㄥ嚑涓湴鏂逛嬌鐢ㄤ簡鐩稿悓鐨勪唬鐮侊紝
騫朵笖鎮ㄤ篃浼氬彂鐜幫紝濡傛灉鎴戜滑浣跨敤浜嗗嚱鏁幫紝浼氭柟渚垮緢澶氥備竴涓嚱鏁版槸榪欎釜鏍峰瓙鐨勶細
functionname()
{
# inside the body $1 is the first argument given to the function
# $2 the second ...
body
}
鎮ㄩ渶瑕佸湪姣忎釜紼嬪簭鐨勫紑濮嬪鍑芥暟榪涜澹版槑銆?

銆銆涓嬮潰鏄竴涓彨鍋歺titlebar鐨勮剼鏈紝浣跨敤榪欎釜鑴氭湰鎮ㄥ彲浠ユ敼鍙樼粓绔獥鍙g殑鍚嶇О銆?br />榪欓噷浣跨敤浜嗕竴涓彨鍋歨elp鐨勫嚱鏁般傛濡傛偍鍙互鐪嬪埌鐨勯偅鏍鳳紝榪欎釜瀹氫箟鐨勫嚱鏁拌浣跨敤浜嗕袱嬈°?
#!/bin/sh
# vim: set sw=4 ts=4 et:
help()
{
銆銆cat <
xtitlebar -- change the name of an xterm, gnome-terminal or kde konsole
USAGE: xtitlebar [-h] "string_for_titelbar"
OPTIONS: -h help text
EXAMPLE: xtitlebar "cvs"
HELP
銆銆exit 0
}
# in case of error or if -h is given we call the function help:
[ -z "$1" ] && help
[ "$1" = "-h" ] && help
# send the escape sequence to change the xterm titelbar:
echo -e "33]0;$107"
#

鍦ㄨ剼鏈腑鎻愪緵甯姪鏄竴縐嶅緢濂界殑緙栫▼涔犳儻錛岃繖鏍鋒柟渚垮叾浠栫敤鎴鳳紙鍜屾偍錛変嬌鐢ㄥ拰鐞嗚В鑴氭湰銆?
鍛戒護琛屽弬鏁?
銆銆鎴戜滑宸茬粡瑙佽繃$* 鍜?$1, $2 ... $9 絳夌壒孌婂彉閲忥紝榪欎簺鐗規畩鍙橀噺鍖呭惈浜嗙敤鎴蜂粠鍛戒護
琛岃緭鍏ョ殑鍙傛暟銆傝縿浠婁負姝紝鎴戜滑浠呬粎浜嗚В浜嗕竴浜涚畝鍗曠殑鍛戒護琛岃娉曪紙姣斿涓浜涘己鍒舵х殑
鍙傛暟鍜屾煡鐪嬪府鍔╃殑-h閫夐」錛夈?浣嗘槸鍦ㄧ紪鍐欐洿澶嶆潅鐨勭▼搴忔椂錛屾偍鍙兘浼氬彂鐜版偍闇瑕佹洿澶氱殑
鑷畾涔夌殑閫夐」銆傞氬父鐨勬儻渚嬫槸鍦ㄦ墍鏈夊彲閫夌殑鍙傛暟涔嬪墠鍔犱竴涓噺鍙鳳紝鍚庨潰鍐嶅姞涓婂弬鏁板?(
姣斿鏂囦歡鍚?銆?
鏈夊ソ澶氭柟娉曞彲浠ュ疄鐜板杈撳叆鍙傛暟鐨勫垎鏋愶紝浣嗘槸涓嬮潰鐨勪嬌鐢╟ase琛ㄨ揪寮忕殑渚嬪瓙鏃犻仐鏄竴涓笉閿欑殑鏂規硶銆?
#!/bin/sh
help()
{
銆cat <
This is a generic command line parser demo.
USAGE EXAMPLE: cmdparser -l hello -f -- -somefile1 somefile2
HELP
銆exit 0
}
while [ -n "$1" ]; do
case $1 in
銆銆-h) help;shift 1;; # function help is called
銆銆-f) opt_f=1;shift 1;; # variable opt_f is set
銆銆-l) opt_l=$2;shift 2;; # -l takes an argument -> shift by 2
銆銆--) shift;break;; # end of options
銆銆-*) echo "error: no such option $1. -h for help";exit 1;;
銆銆*) break;;
esac
done

echo "opt_f is $opt_f"
echo "opt_l is $opt_l"
echo "first arg is $1"
echo "2nd arg is $2"
銆銆鎮ㄥ彲浠ヨ繖鏍瘋繍琛岃鑴氭湰錛?
cmdparser -l hello -f -- -somefile1 somefile2
銆銆榪斿洖鐨勭粨鏋滄槸錛?
opt_f is 1
opt_l is hello
first arg is -somefile1
2nd arg is somefile2
銆銆榪欎釜鑴氭湰鏄浣曞伐浣滅殑鍛紵鑴氭湰棣栧厛鍦ㄦ墍鏈夎緭鍏ュ懡浠よ鍙傛暟涓繘琛屽驚鐜紝灝嗚緭鍏ュ弬鏁?br />涓巆ase琛ㄨ揪寮忚繘琛屾瘮杈冿紝濡傛灉鍖歸厤鍒欒緗竴涓彉閲忓茍涓旂Щ闄よ鍙傛暟銆傛牴鎹畊nix緋葷粺鐨勬儻渚嬶紝
棣栧厛杈撳叆鐨勫簲璇ユ槸鍖呭惈鍑忓彿鐨勫弬鏁?
絎?閮ㄥ垎 瀹炰緥
鐜板湪鎴戜滑鏉ヨ璁虹紪鍐欎竴涓剼鏈殑涓鑸楠ゃ備換浣曚紭縐鐨勮剼鏈兘搴旇鍏鋒湁甯姪鍜岃緭鍏ュ弬鏁般傚茍涓斿啓涓涓吉鑴氭湰錛坒ramework.sh錛夛紝璇ヨ剼鏈寘鍚簡澶у鏁拌剼鏈兘闇瑕佺殑妗嗘灦緇撴瀯錛屾槸涓涓潪甯鎬笉閿欑殑涓繪剰銆傝繖鏃跺欙紝鍦ㄥ啓涓涓柊鐨勮剼鏈椂鎴戜滑鍙渶瑕佹墽琛屼竴涓媍opy鍛戒護錛?
cp framework.sh myscript
銆鐒跺悗鍐嶆彃鍏ヨ嚜宸辯殑鍑芥暟銆?
銆銆璁╂垜浠啀鐪嬩袱涓緥瀛愶細
銆銆浜岃繘鍒跺埌鍗佽繘鍒剁殑杞崲
銆銆鑴氭湰 b2d 灝嗕簩榪涘埗鏁?(姣斿 1101) 杞崲涓虹浉搴旂殑鍗佽繘鍒舵暟銆傝繖涔熸槸涓涓敤expr鍛戒護榪涜鏁板榪愮畻鐨勪緥瀛愶細
#!/bin/sh
# vim: set sw=4 ts=4 et:
help()
{
銆cat <
b2h -- convert binary to decimal
USAGE: b2h [-h] binarynum
OPTIONS: -h help text
EXAMPLE: b2h 111010
will return 58
HELP
銆exit 0
}
error()
{
銆銆# print an error and exit
銆銆echo "$1"
銆銆exit 1
}
lastchar()
{
銆銆# return the last character of a string in $rval
銆銆if [ -z "$1" ]; then
銆銆銆銆# empty string
銆銆銆銆rval=""
銆銆銆銆return
銆銆fi
銆銆# wc puts some space behind the output this is why we need sed:
銆銆numofchar=`echo -n "$1" | wc -c | sed 's/ //g' `
銆銆# now cut out the last char
銆銆rval=`echo -n "$1" | cut -b $numofchar`
}

chop()
{
銆銆# remove the last character in string and return it in $rval
銆銆if [ -z "$1" ]; then
銆銆銆銆# empty string
銆銆銆銆rval=""
銆銆銆銆return
銆銆fi
銆銆# wc puts some space behind the output this is why we need sed:
銆銆numofchar=`echo -n "$1" | wc -c | sed 's/ //g' `
銆銆if [ "$numofchar" = "1" ]; then
銆銆銆銆# only one char in string
銆銆銆銆rval=""
銆銆銆銆return
銆銆fi
銆銆numofcharminus1=`expr $numofchar "-" 1`
銆銆# now cut all but the last char:
銆銆rval=`echo -n "$1" | cut -b 0-${numofcharminus1}`
}
while [ -n "$1" ]; do
case $1 in
銆銆-h) help;shift 1;; # function help is called
銆銆--) shift;break;; # end of options
銆銆-*) error "error: no such option $1. -h for help";;
銆銆*) break;;
esac
done
# The main program
sum=0
weight=1
# one arg must be given:
[ -z "$1" ] && help
binnum="$1"
binnumorig="$1"

while [ -n "$binnum" ]; do
銆銆lastchar "$binnum"
銆銆if [ "$rval" = "1" ]; then
銆銆銆銆sum=`expr "$weight" "+" "$sum"`
銆銆fi
銆銆# remove the last position in $binnum
銆銆chop "$binnum"
銆銆binnum="$rval"
銆銆weight=`expr "$weight" "*" 2`
done
echo "binary $binnumorig is decimal $sum"
銆璇ヨ剼鏈嬌鐢ㄧ殑綆楁硶鏄埄鐢ㄥ崄榪涘埗鍜屼簩榪涘埗鏁版潈鍊?(1,2,4,8,16,..)錛屾瘮濡備簩榪涘埗"10"鍙?br />浠ヨ繖鏍瘋漿鎹㈡垚鍗佽繘鍒訛細
0 * 1 + 1 * 2 = 2
銆銆涓轟簡寰楀埌鍗曚釜鐨勪簩榪涘埗鏁版垜浠槸鐢ㄤ簡lastchar 鍑芥暟銆傝鍑芥暟浣跨敤wc 鈥揷璁$畻瀛楃涓暟錛?br />鐒跺悗浣跨敤cut鍛戒護鍙栧嚭鏈熬涓涓瓧絎︺侰hop鍑芥暟鐨勫姛鑳藉垯鏄Щ闄ゆ渶鍚庝竴涓瓧絎︺?

鏂囦歡寰幆紼嬪簭
銆銆鎴栬鎮ㄦ槸鎯沖皢鎵鏈夊彂鍑虹殑閭歡淇濆瓨鍒頒竴涓枃浠朵腑鐨勪漢浠腑鐨勪竴鍛橈紝浣嗘槸鍦ㄨ繃浜嗗嚑涓湀
浠ュ悗錛岃繖涓枃浠跺彲鑳戒細鍙樺緱寰堝ぇ浠ヨ嚦浜庝嬌瀵硅鏂囦歡鐨勮闂熷害鍙樻參銆備笅闈㈢殑 鑴氭湰rotatefile
鍙互瑙e喅榪欎釜闂銆傝繖涓剼鏈彲浠ラ噸鍛藉悕閭歡淇濆瓨鏂囦歡錛堝亣璁句負outmail錛変負outmail.1錛?br />鑰屽浜巓utmail.1灝卞彉鎴愪簡outmail.2 絳夌瓑絳夌瓑...
#!/bin/sh
# vim: set sw=4 ts=4 et:
ver="0.1"
help()
{
銆銆cat <
rotatefile -- rotate the file name

USAGE: rotatefile [-h] filename

OPTIONS: -h help text
EXAMPLE: rotatefile out
This will e.g rename out.2 to out.3, out.1 to out.2, out to out.1
and create an empty out-file
The max number is 10
version $ver
HELP
銆銆exit 0
}

error()
{
銆銆echo "$1"
銆銆exit 1
}
while [ -n "$1" ]; do
case $1 in
銆銆-h) help;shift 1;;
銆銆--) break;;
銆銆-*) echo "error: no such option $1. -h for help";exit 1;;
銆銆*) break;;
esac
done
# input check:
if [ -z "$1" ] ; then
error "ERROR: you must specify a file, use -h for help"
fi
filen="$1"
# rename any .1 , .2 etc file:
for n in 9 8 7 6 5 4 3 2 1; do
銆銆if [ -f "$filen.$n" ]; then
銆銆銆銆p=`expr $n + 1`
銆銆銆銆echo "mv $filen.$n $filen.$p"
銆銆銆銆mv $filen.$n $filen.$p
銆銆fi
done
# rename the original file:
if [ -f "$filen" ]; then
銆銆echo "mv $filen $filen.1"
銆銆mv $filen $filen.1
fi
echo touch $filen
touch $filen
銆銆榪欎釜鑴氭湰鏄浣曞伐浣滅殑鍛紵鍦ㄦ嫻嬬敤鎴鋒彁渚涗簡涓涓枃浠跺悕浠ュ悗錛屾垜浠繘琛屼竴涓?鍒?鐨勫驚鐜傛枃浠?琚懡鍚嶄負10錛屾枃浠?閲嶅懡鍚嶄負9絳夌瓑銆傚驚鐜畬鎴愪箣鍚庯紝鎴戜滑灝嗗師濮嬫枃浠跺懡鍚嶄負鏂囦歡1鍚屾椂寤虹珛涓涓笌鍘熷鏂囦歡鍚屽悕鐨勭┖鏂囦歡銆?
璋冭瘯 //---------------------------------------銆銆
//-- www.icwin.net
//---------------------------------------
銆銆鏈綆鍗曠殑璋冭瘯鍛戒護褰撶劧鏄嬌鐢╡cho鍛戒護銆傛偍鍙互浣跨敤echo鍦ㄤ換浣曟鐤戝嚭閿欑殑鍦版柟鎵撳嵃浠諱綍鍙橀噺鍊箋傝繖涔熸槸緇濆ぇ澶氭暟鐨剆hell紼嬪簭鍛樿鑺辮垂80%鐨勬椂闂存潵璋冭瘯紼嬪簭鐨勫師鍥犮係hell紼嬪簭鐨勫ソ澶勫湪浜庝笉闇瑕侀噸鏂扮紪璇戯紝鎻掑叆涓涓猠cho鍛戒護涔熶笉闇瑕佸灝戞椂闂淬?
銆銆shell涔熸湁涓涓湡瀹炵殑璋冭瘯妯″紡銆傚鏋滃湪鑴氭湰"strangescript" 涓湁閿欒錛屾偍鍙互榪欐牱鏉ヨ繘琛岃皟璇曪細
sh -x strangescript
銆銆榪欏皢鎵ц璇ヨ剼鏈茍鏄劇ず鎵鏈夊彉閲忕殑鍊箋?
銆銆shell榪樻湁涓涓笉闇瑕佹墽琛岃剼鏈彧鏄鏌ヨ娉曠殑妯″紡銆傚彲浠ヨ繖鏍蜂嬌鐢細
sh -n your_script
銆銆榪欏皢榪斿洖鎵鏈夎娉曢敊璇?-- 鎴戜滑鐨勬妧鏈槸浣犵殑錛?a target="_blank">www.icwin.net


]]>
主站蜘蛛池模板: 中文字幕久无码免费久久| 成人特级毛片69免费观看| 青青草无码免费一二三区| 亚洲美女在线观看播放| 亚洲精品无码专区| 成人性生交大片免费看无遮挡| 亚洲自偷精品视频自拍| 国产妇乱子伦视频免费| 亚洲天堂电影在线观看| 性做久久久久久久免费看| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲乱码中文字幕综合| 中国一级全黄的免费观看| 亚洲av无码国产精品夜色午夜| 91人成网站色www免费下载| 亚洲电影免费观看| 成年女人毛片免费视频| 亚洲成av人在线观看网站| 亚洲av无码成人精品区| 成在线人视频免费视频| 久久亚洲精品成人AV| 在线视频免费观看爽爽爽| 亚洲综合在线一区二区三区 | 亚洲精品视频免费| 亚洲V无码一区二区三区四区观看 亚洲αv久久久噜噜噜噜噜 | 久久99国产乱子伦精品免费| 亚洲欧洲精品视频在线观看| 成人黄软件网18免费下载成人黄18免费视频 | 亚洲日韩国产精品乱| 免费国产污网站在线观看15| 亚洲av无码不卡久久| 亚洲精品tv久久久久久久久久| 99热在线日韩精品免费| 亚洲乱码在线视频| 亚洲成片观看四虎永久| 污污网站免费观看| 亚洲AV无码一区二区三区性色| 亚洲男同帅GAY片在线观看| 在线观看视频免费完整版| 麻豆91免费视频| 久久夜色精品国产噜噜亚洲AV|