锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品热久久,亚洲国产精品无码久久久久久曰,久久人人爽人人爽人人片AV麻烦 http://www.shnenglu.com/guojingjia2006/category/14642.htmlPay it forword - 鎴戝茍涓嶈鐨勮嚜璞紝鎴戞墍灝濊瘯鐨勪簨鎯呴兘澶辮觸浜?jiǎn)路路路路路路涔?fàn)鎯師鏈敓媧葷殑浜轟笉瀹規(guī)槗鏀瑰彉錛屽氨綆楃幇鐘跺緢緋燂紝浠栦滑涔熷緢闅炬敼鍙橈紝鍦ㄨ繃紼嬩腑錛屼粬浠繕鏄斁寮冧簡(jiǎn)路路路路路路浠栦滑涓鏀懼純錛屽ぇ瀹跺氨閮芥槸杈撳路路路路路路璁╃埍浼犲嚭鍘伙紝寰堝洶闅撅紝涔熸棤娉曢鏂欙紝浜轟滑闇瑕佹洿緇嗗績(jī)鐨勮瀵熷埆浜猴紝瑕侀殢鏃舵敞鎰忔墠鑳戒繚鎶ゅ埆浜猴紝鍥犱負(fù)浠栦滑鏈繀鐭ラ亾鑷繁瑕佷粈涔埪仿仿仿仿?/description>zh-cnWed, 16 Jan 2013 17:07:19 GMTWed, 16 Jan 2013 17:07:19 GMT60鍐欏嚭鍋ュ.鐨?Bash 鑴氭湰http://www.shnenglu.com/guojingjia2006/archive/2013/01/09/197146.html灝忔灉瀛?/dc:creator>灝忔灉瀛?/author>Wed, 09 Jan 2013 04:11:00 GMThttp://www.shnenglu.com/guojingjia2006/archive/2013/01/09/197146.htmlhttp://www.shnenglu.com/guojingjia2006/comments/197146.htmlhttp://www.shnenglu.com/guojingjia2006/archive/2013/01/09/197146.html#Feedback0http://www.shnenglu.com/guojingjia2006/comments/commentRss/197146.htmlhttp://www.shnenglu.com/guojingjia2006/services/trackbacks/197146.html

璁稿浜虹敤shell鑴氭湰瀹屾垚涓浜涚畝鍗曚換鍔★紝鑰屼笖鍙樻垚浜?jiǎn)浠栦滑鐢熷懡鐨勪竴閮ㄥ垎銆備笉騫哥殑鏄紝shell鑴氭湰鍦ㄨ繍琛屽紓甯告椂浼?xì)鍙楀埌闈炲父澶х殑濯?jiǎng)鍝嶃傚湪鍐欒剼鏈椂灝嗚繖綾婚棶棰樻渶灝忓寲鏄崄鍒嗗繀瑕佺殑銆傛湰鏂囦腑鎴戝皢浠嬬粛涓浜涜bash鑴氭湰鍙樺緱鍋ュ.鐨勬妧鏈?/p>

浣跨敤set -u

浣犲洜涓烘病鏈夊鍙橀噺鍒濆鍖栬屼嬌鑴氭湰宕╂簝榪囧灝戞錛熷浜庢垜鏉ヨ錛屽緢澶氭銆?/p>

chroot=$1 ... rm -rf $chroot/usr/share/doc

濡傛灉涓婇潰鐨勪唬鐮佷綘娌℃湁緇欏弬鏁板氨榪愯錛屼綘涓嶄細(xì)浠呬粎鍒犻櫎鎺塩hroot涓殑鏂囨。錛岃屾槸灝嗙郴緇熺殑鎵鏈夋枃妗i兘鍒犻櫎銆傞偅浣犲簲璇ュ仛浜涗粈涔堝憿錛熷ソ鍦╞ash鎻愪緵浜?em>set -u錛屽綋浣犱嬌鐢ㄦ湭鍒濆鍖栫殑鍙橀噺鏃訛紝璁゜ash鑷姩閫鍑恒備綘涔熷彲浠ヤ嬌鐢ㄥ彲璇繪ф洿寮轟竴鐐圭殑set -o nounset銆?/p>

david% bash /tmp/shrink-chroot.sh

$chroot=

david% bash -u /tmp/shrink-chroot.sh

/tmp/shrink-chroot.sh: line 3: $1: unbound variable

david%

浣跨敤set -e

浣犲啓鐨勬瘡涓涓剼鏈殑寮濮嬮兘搴旇鍖呭惈set -e銆傝繖鍛婅瘔bash涓浣嗘湁浠諱綍涓涓鍙ヨ繑鍥為潪鐪熺殑鍊鹼紝鍒欓鍑篵ash銆備嬌鐢?e鐨勫ソ澶勬槸閬垮厤閿欒婊氶洩鐞冭埇鐨勫彉鎴愪弗閲嶉敊璇紝鑳藉敖鏃╃殑鎹曡幏閿欒銆傛洿鍔犲彲璇葷殑鐗堟湰錛?em>set -o errexit

浣跨敤-e鎶婁綘浠庢鏌ラ敊璇腑瑙f斁鍑烘潵銆傚鏋滀綘蹇樿浜?jiǎn)妫鏌ワ紝bash浼?xì)鏇夸綘鍋殬q欎歡浜嬨備笉榪囦綘涔熸病鏈夊姙娉曚嬌鐢?em>$?鏉ヨ幏鍙栧懡浠ゆ墽琛岀姸鎬佷簡(jiǎn)錛屽洜涓篵ash鏃犳硶鑾峰緱浠諱綍闈?鐨勮繑鍥炲箋備綘鍙互浣跨敤鍙︿竴縐嶇粨鏋勶細(xì)

command

if [ "$?"-ne 0]; then echo "command failed"; exit 1; fi

鍙互鏇挎崲鎴愶細(xì)

command || { echo "command failed"; exit 1; }

鎴栬呬嬌鐢細(xì)

if ! command; then echo "command failed"; exit 1; fi

濡傛灉浣犲繀欏諱嬌鐢ㄨ繑鍥為潪0鍊肩殑鍛戒護(hù)錛屾垨鑰呬綘瀵硅繑鍥炲煎茍涓嶆劅鍏磋叮鍛紵浣犲彲浠ヤ嬌鐢?command || true 錛屾垨鑰呬綘鏈変竴孌靛緢闀跨殑浠g爜錛屼綘鍙互鏆傛椂鍏抽棴閿欒媯(gè)鏌ュ姛鑳斤紝涓嶈繃鎴戝緩璁綘璋ㄦ厧浣跨敤銆?/p>

set +e

command1

command2

set -e

鐩稿叧鏂囨。鎸囧嚭錛宐ash榛樿榪斿洖綆¢亾涓渶鍚庝竴涓懡浠ょ殑鍊鹼紝涔熻鏄綘涓嶆兂瑕佺殑閭d釜銆傛瘮濡傛墽琛?false | true 灝嗕細(xì)琚涓哄懡浠ゆ垚鍔熸墽琛屻傚鏋滀綘鎯寵榪欐牱鐨勫懡浠よ璁や負(fù)鏄墽琛屽け璐ワ紝鍙互浣跨敤 set -o pipefail

紼嬪簭闃插盡 - 鑰冭檻鎰忔枡涔嬪鐨勪簨

浣犵殑鑴氭湰涔熻浼?xì)琚攽謭?#8220;鎰忓”鐨勮處鎴蜂笅榪愯錛屽儚緙哄皯鏂囦歡鎴栬呯洰褰曟病鏈夎鍒涘緩絳夋儏鍐點(diǎn)備綘鍙互鍋氫竴浜涢闃茶繖浜涢敊璇簨鎯呫傛瘮濡傦紝褰撲綘鍒涘緩涓涓洰褰曞悗錛屽鏋滅埗鐩綍涓嶅瓨鍦紝mkdir 鍛戒護(hù)浼?xì)杩斿洖涓涓敊璇傚鏋滀綘鍒涘緩鐩綍鏃剁粰mkdir鍛戒護(hù)鍔犱笂-p閫夐」錛屽畠浼?xì)鍦ㄥ垱寰忛渶瑕佺殑鐩綍鍓嶏紝鎶婇渶瑕佺殑鐖剁洰褰曞垱寤哄嚭鏉ャ傚彟涓涓緥瀛愭槸 rm 鍛戒護(hù)銆傚鏋滀綘瑕佸垹闄や竴涓笉瀛樺湪鐨勬枃浠訛紝瀹冧細(xì)“鍚愭Ы”騫朵笖浣犵殑鑴氭湰浼?xì)鍋滄宸ヤ綔銆傦紙鍥犱負(fù)浣犱嬌鐢ㄤ簡(jiǎn)-e閫夐」錛屽鍚э紵錛変綘鍙互浣跨敤-f閫夐」鏉ヨВ鍐寵繖涓棶棰橈紝鍦ㄦ枃浠朵笉瀛樺湪鐨勬椂鍊欒鑴氭湰緇х畫(huà)宸ヤ綔銆?nbsp;

鍑嗗濂藉鐞嗘枃浠跺悕涓殑絀烘牸

鏈変簺浜轟粠鍦ㄦ枃浠跺悕鎴栬呭懡浠よ鍙傛暟涓嬌鐢ㄧ┖鏍鹼紝浣犻渶瑕佸湪緙栧啓鑴氭湰鏃舵椂鍒昏寰楄繖浠朵簨銆備綘闇瑕佹椂鍒昏寰楃敤寮曞彿鍖呭洿鍙橀噺銆?/p>

if [ $filename = "foo" ];

褰?em>$filename鍙橀噺鍖呭惈絀烘牸鏃跺氨浼?xì)鎸傛帀銆傚彲浠ヨ繖鏍瘋В鍐籌細(xì)

if [ "$filename" = "foo" ];

浣跨敤$@鍙橀噺鏃訛紝浣犱篃闇瑕佷嬌鐢ㄥ紩鍙鳳紝鍥犱負(fù)絀烘牸闅斿紑鐨勪袱涓弬鏁頒細(xì)琚В閲婃垚涓や釜鐙珛鐨勯儴鍒嗐?/p>

david% foo() { for i in $@; do echo $i; done }; foo bar "baz quux"

bar

baz

quux

david% foo() { for i in "$@"; do echo $i; done }; foo bar "baz quux"

bar

baz quux

鎴戞病鏈夋兂鍒頒換浣曚笉鑳戒嬌鐢?em>"$@"鐨勬椂鍊欙紝鎵浠ュ綋浣犳湁鐤戦棶鐨勬椂鍊欙紝浣跨敤寮曞彿灝辨病鏈夐敊璇?/p>

濡傛灉浣犲悓鏃朵嬌鐢╢ind鍜寈args錛屼綘搴旇浣跨敤 -print0 鏉ヨ瀛楃鍒嗗壊鏂囦歡鍚嶏紝鑰屼笉鏄崲琛岀鍒嗗壊銆?/p>

 david% touch "foo bar"

david% find | xargs ls

ls: ./foo: No such file or directory

ls: bar: No such file or directory

david% find -print0 | xargs -0 ls

./foo bar

璁劇疆鐨勯櫡闃?/h1>

褰撲綘緙栧啓鐨勮剼鏈寕鎺夊悗錛屾枃浠剁郴緇熷浜庢湭鐭ョ姸鎬併傛瘮濡傞攣鏂囦歡鐘舵併佷復(fù)鏃舵枃浠剁姸鎬佹垨鑰呮洿鏂頒簡(jiǎn)涓涓枃浠跺悗鍦ㄦ洿鏂頒笅涓涓枃浠跺墠鎸傛帀銆傚鏋滀綘鑳借В鍐寵繖浜涢棶棰橈紝 鏃犺鏄? 鍒犻櫎閿佹枃浠訛紝鍙堟垨鑰呭湪鑴氭湰閬囧埌闂鏃跺洖婊氬埌宸茬煡鐘舵侊紝浣犻兘鏄潪甯告鐨勩傚垢榪愮殑鏄紝bash鎻愪緵浜?jiǎn)涓縐嶆柟娉曪紝褰揵ash鎺ユ敹鍒頒竴涓猆NIX淇″彿鏃訛紝榪愯涓涓? 鍛戒護(hù)鎴栬呬竴涓嚱鏁般傚彲浠ヤ嬌鐢?strong>trap鍛戒護(hù)銆?/p>

trap command signal [signal ...]

浣犲彲浠ラ摼鎺ュ涓俊鍙鳳紙鍒楄〃鍙互浣跨敤kill -l鑾峰緱錛夛紝浣嗘槸涓轟簡(jiǎn)娓呯悊孌嬪眬錛屾垜浠彧浣跨敤鍏朵腑鐨勪笁涓細(xì)INT錛?em>TERM鍜?em>EXIT銆備綘鍙互浣跨敤-as鏉ヨtraps鎭㈠鍒板垵濮嬬姸鎬併?/p>

淇″彿鎻忚堪

 

INT

Interrupt - 褰撴湁浜轟嬌鐢–trl-C緇堟鑴氭湰鏃惰瑙﹀彂

TERM

Terminate - 褰撴湁浜轟嬌鐢╧ill鏉姝昏剼鏈繘紼嬫椂琚Е鍙?/p>

EXIT

Exit - 榪欐槸涓涓吉淇″彿錛屽綋鑴氭湰姝e父閫鍑烘垨鑰卻et -e鍚庡洜涓哄嚭閿欒岄鍑烘椂琚Е鍙?/p>

 

 

 

 

褰撲綘浣跨敤閿佹枃浠舵椂錛屽彲浠ヨ繖鏍峰啓錛?/p>

if [ ! -e $lockfile ]; then

touch $lockfile

critical-section

rm $lockfile

else

echo "critical-section is already running"

fi

褰撴渶閲嶈鐨勯儴鍒?critical-section)姝e湪榪愯鏃訛紝濡傛灉鏉姝諱簡(jiǎn)鑴氭湰榪涚▼錛屼細(xì)鍙戠敓浠涔堝憿錛熼攣鏂囦歡浼?xì)琚墧鍦ㄩ偅锛岃屼笖浣犵殑鑴氭湰鍦ㄥ畠琚垹闄や互鍓嶅啀涔熶笉浼?xì)杩愯浜?jiǎn)銆傝В鍐蟲(chóng)柟娉曪細(xì)

if [ ! -e $lockfile ]; then

trap " rm -f $lockfile; exit" INT TERM EXIT

touch $lockfile

critical-section

rm $lockfile

trap - INT TERM EXIT

else

echo "critical-section is already running"

fi

鐜板湪褰撲綘鏉姝昏繘紼嬫椂錛岄攣鏂囦歡涓鍚岃鍒犻櫎銆傛敞鎰忓湪trap鍛戒護(hù)涓槑紜湴閫鍑轟簡(jiǎn)鑴氭湰錛屽惁鍒欒剼鏈細(xì)緇х畫(huà)鎵цtrap鍚庨潰鐨勫懡浠ゃ?/p>

绔熸佹潯浠?(wikipedia)

鍦ㄤ笂闈㈤攣鏂囦歡鐨勪緥瀛愪腑錛屾湁涓涓珶鎬佹潯浠舵槸涓嶅緱涓嶆寚鍑虹殑錛屽畠瀛樺湪浜庡垽鏂攣鏂囦歡鍜屽垱寤洪攣鏂囦歡涔嬮棿銆備竴涓彲琛岀殑瑙e喅鏂規(guī)硶鏄嬌鐢↖O閲嶅畾鍚戝拰bash鐨刵oclobber(wikipedia)妯″紡錛岄噸瀹氬悜鍒頒笉瀛樺湪鐨勬枃浠躲傛垜浠彲浠ヨ繖涔堝仛錛?/p>

if ( set -o noclobber; echo "$$" > "$lockfile") 2> /dev/null;

then

trap 'rm -f "$lockfile"; exit $?' INT TERM EXIT

critical-section

rm -f "$lockfile"

trap - INT TERM EXIT

else

echo "Failed to acquire lockfile: $lockfile"

echo "held by $(cat $lockfile)"

fi

鏇村鏉備竴鐐瑰効鐨勯棶棰樻槸浣犺鏇存柊涓澶у爢鏂囦歡錛屽綋瀹冧滑鏇存柊榪囩▼涓嚭鐜伴棶棰樻椂錛屼綘鏄惁鑳借鑴氭湰鎸傚緱鏇村姞浼橀泤涓浜涖備綘鎯崇‘璁ら偅浜涙紜洿鏂頒簡(jiǎn)錛屽摢浜涙牴鏈病鏈夊彉鍖栥傛瘮濡備綘闇瑕佷竴涓坊鍔犵敤鎴風(fēng)殑鑴氭湰銆?/p>

add_to_passwd $user

cp -a /etc/skel /home/$user

chown $user /home/$user -R

褰撶鐩樼┖闂翠笉瓚蟲(chóng)垨鑰呰繘紼嬩腑閫旇鏉姝伙紝榪欎釜鑴氭湰灝變細(xì)鍑虹幇闂銆傚湪榪欑鎯呭喌涓嬶紝浣犱篃璁稿笇鏈涚敤鎴瘋處鎴蜂笉瀛樺湪錛岃屼笖浠栫殑鏂囦歡涔熷簲璇ヨ鍒犻櫎銆?/p>

rollback() {

del_from_passwd $user

if [ -e /home/$user ]; then

rm -rf /home/$user

fi

exit

}

 

trap rollback INT TERM EXIT

add_to_passwd $user

 

cp -a /etc/skel /home/$user

chown $user /home/$user -R

trap - INT TERM EXIT

鍦ㄨ剼鏈渶鍚庨渶瑕佷嬌鐢╰rap鍏抽棴rollback璋冪敤錛屽惁鍒欏綋鑴氭湰姝e父閫鍑虹殑鏃跺檙ollback灝嗕細(xì)琚皟鐢紝閭d箞鑴氭湰絳変簬浠涔堥兘娌″仛銆?/p>

淇濇寔鍘熷瓙鍖?/h1>

鍙堟槸浣犻渶瑕佷竴嬈℃洿鏂扮洰褰曚腑鐨勪竴澶у爢鏂囦歡錛屾瘮濡備綘闇瑕佸皢URL閲嶅啓鍒板彟涓涓綉绔欑殑鍩熷悕銆備綘涔熻浼?xì)鍐欏Q?/p>

for file in $(find /var/www -type f -name "*.html"); do

perl -pi -e 's/www.example.net/www.example.com/' $file

done

濡傛灉淇敼鍒頒竴鍗婃槸鑴氭湰鍑虹幇闂錛屼竴閮ㄥ垎浣跨敤www.example.com錛岃屽彟涓閮ㄥ垎浣跨敤www.example.net銆備綘鍙互浣跨敤澶囦喚鍜宼rap瑙e喅錛屼絾鍦ㄥ崌綰ц繃紼嬩腑浣犵殑緗戠珯URL鏄笉涓鑷寸殑銆?/p>

瑙e喅鏂規(guī)硶鏄皢榪欎釜鏀瑰彉鍋氭垚涓涓師瀛愭搷浣溿傚厛瀵規(guī)暟鎹仛涓涓壇鏈紝鍦ㄥ壇鏈腑鏇存柊URL錛屽啀鐢ㄥ壇鏈浛鎹㈡帀鐜板湪宸ヤ綔鐨勭増鏈備綘闇瑕佺‘璁ゅ壇鏈拰宸ヤ綔鐗堟湰鐩綍鍦ㄥ悓涓涓鐩樺垎鍖轟笂錛岃繖鏍蜂綘灝卞彲浠ュ埄鐢↙inux緋葷粺鐨勪紭鍔匡紝瀹冪Щ鍔ㄧ洰褰曚粎浠呮槸鏇存柊鐩綍鎸囧悜鐨刬node鑺傜偣銆?/p>

cp -a /var/www /var/www-tmp

for file in $(find /var/www-tmp -type -f -name "*.html"); do

perl -pi -e 's/www.example.net/www.example.com/' $file

done

mv /var/www /var/www-old

mv /var/www-tmp /var/www

榪欐剰鍛崇潃濡傛灉鏇存柊榪囩▼鍑洪棶棰橈紝綰夸笂緋葷粺涓嶄細(xì)鍙楀獎(jiǎng)鍝嶃傜嚎涓婄郴緇熷彈褰卞搷鐨勬椂闂撮檷浣庝負(fù)涓ゆmv鎿嶄綔鐨勬椂闂達(dá)紝榪欎釜鏃墮棿闈炲父鐭紝鍥犱負(fù)鏂囦歡緋葷粺浠呮洿鏂癷node鑰屼笉鐢ㄧ湡姝g殑澶嶅埗鎵鏈夌殑鏁版嵁銆?/p>

榪欑鎶鏈殑緙虹偣鏄綘闇瑕佷袱鍊嶇殑紓佺洏絀洪棿錛岃屼笖閭d簺闀挎椂闂存墦寮鏂囦歡鐨勮繘紼嬮渶瑕佹瘮杈冮暱鐨勬椂闂存墠鑳藉崌綰у埌鏂版枃浠剁増鏈紝寤鴻鏇存柊瀹屾垚鍚庨噸鏂板惎鍔ㄨ繖浜涜繘紼嬨傚 浜? apache鏈嶅姟鍣ㄦ潵璇磋繖涓嶆槸闂錛屽洜涓哄畠姣忔閮介噸鏂版墦寮鏂囦歡銆備綘鍙互浣跨敤lsof鍛戒護(hù)鏌ョ湅褰撳墠姝f墦寮鐨勬枃浠躲備紭鍔挎槸浣犳湁浜?jiǎn)涓涓厛鍓嶇殑澶囦喚錛屽綋浣犻渶瑕佽繕鍘? 鏃訛紝瀹冨氨媧句笂鐢ㄥ満浜?jiǎn)銆?/p>杞嚜: http://www.linuxidc.com/Linux/2012-03/56614.htm

]]> 久久精品中文字幕大胸| 久久亚洲美女精品国产精品| 久久精品无码一区二区app| 伊人久久一区二区三区无码| 思思久久99热只有频精品66| 国产韩国精品一区二区三区久久| 四虎国产精品免费久久久| 99久久香蕉国产线看观香| 99精品国产在热久久无毒不卡 | 久久美女人爽女人爽| 人妻系列无码专区久久五月天| 青青草原精品99久久精品66| 久久久久久亚洲精品不卡 | 欧美亚洲色综久久精品国产| 精品免费久久久久国产一区| 久久精品国产亚洲AV麻豆网站 | 青青草原精品99久久精品66| 久久久久国产精品嫩草影院| 久久线看观看精品香蕉国产| 伊人久久大香线蕉综合影院首页| 热RE99久久精品国产66热| 亚洲国产成人久久精品动漫| 久久精品www人人爽人人| 精品多毛少妇人妻AV免费久久| 精品久久国产一区二区三区香蕉 | 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 亚洲愉拍99热成人精品热久久| 久久久噜噜噜久久中文字幕色伊伊| 97精品国产91久久久久久| 色欲久久久天天天综合网精品 | 久久青青草原精品国产不卡| 欧美一区二区精品久久| 久久伊人精品青青草原高清| 亚洲国产精品久久久久| 人人狠狠综合久久亚洲88| 久久电影网一区| 国产99久久九九精品无码| 久久精品国产99久久久香蕉| 国产精品丝袜久久久久久不卡| 国产精品狼人久久久久影院| 国产精品久久久久一区二区三区 |