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

璁稿浜虹敤shell鑴氭湰瀹屾垚涓浜涚畝鍗曚換鍔★紝鑰屼笖鍙樻垚浜嗕粬浠敓鍛界殑涓閮ㄥ垎銆備笉騫哥殑鏄紝shell鑴氭湰鍦ㄨ繍琛屽紓甯告椂浼氬彈鍒伴潪甯稿ぇ鐨勫獎鍝嶃傚湪鍐欒剼鏈椂灝嗚繖綾婚棶棰樻渶灝忓寲鏄崄鍒嗗繀瑕佺殑銆傛湰鏂囦腑鎴戝皢浠嬬粛涓浜涜bash鑴氭湰鍙樺緱鍋ュ.鐨勬妧鏈?/p>

浣跨敤set -u

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

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

濡傛灉涓婇潰鐨勪唬鐮佷綘娌℃湁緇欏弬鏁板氨榪愯錛屼綘涓嶄細浠呬粎鍒犻櫎鎺塩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斁鍑烘潵銆傚鏋滀綘蹇樿浜嗘鏌ワ紝bash浼氭浛浣犲仛榪欎歡浜嬨備笉榪囦綘涔熸病鏈夊姙娉曚嬌鐢?em>$?鏉ヨ幏鍙栧懡浠ゆ墽琛岀姸鎬佷簡錛屽洜涓篵ash鏃犳硶鑾峰緱浠諱綍闈?鐨勮繑鍥炲箋備綘鍙互浣跨敤鍙︿竴縐嶇粨鏋勶細

command

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

鍙互鏇挎崲鎴愶細

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

鎴栬呬嬌鐢細

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

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

set +e

command1

command2

set -e

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

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

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

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

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

if [ $filename = "foo" ];

褰?em>$filename鍙橀噺鍖呭惈絀烘牸鏃跺氨浼氭寕鎺夈傚彲浠ヨ繖鏍瘋В鍐籌細

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

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

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

trap command signal [signal ...]

浣犲彲浠ラ摼鎺ュ涓俊鍙鳳紙鍒楄〃鍙互浣跨敤kill -l鑾峰緱錛夛紝浣嗘槸涓轟簡娓呯悊孌嬪眬錛屾垜浠彧浣跨敤鍏朵腑鐨勪笁涓細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湪榪愯鏃訛紝濡傛灉鏉姝諱簡鑴氭湰榪涚▼錛屼細鍙戠敓浠涔堝憿錛熼攣鏂囦歡浼氳鎵斿湪閭o紝鑰屼笖浣犵殑鑴氭湰鍦ㄥ畠琚垹闄や互鍓嶅啀涔熶笉浼氳繍琛屼簡銆傝В鍐蟲柟娉曪細

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鍛戒護涓槑紜湴閫鍑轟簡鑴氭湰錛屽惁鍒欒剼鏈細緇х畫鎵цtrap鍚庨潰鐨勫懡浠ゃ?/p>

绔熸佹潯浠?(wikipedia)

鍦ㄤ笂闈㈤攣鏂囦歡鐨勪緥瀛愪腑錛屾湁涓涓珶鎬佹潯浠舵槸涓嶅緱涓嶆寚鍑虹殑錛屽畠瀛樺湪浜庡垽鏂攣鏂囦歡鍜屽垱寤洪攣鏂囦歡涔嬮棿銆備竴涓彲琛岀殑瑙e喅鏂規硶鏄嬌鐢↖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

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

add_to_passwd $user

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

chown $user /home/$user -R

褰撶鐩樼┖闂翠笉瓚蟲垨鑰呰繘紼嬩腑閫旇鏉姝伙紝榪欎釜鑴氭湰灝變細鍑虹幇闂銆傚湪榪欑鎯呭喌涓嬶紝浣犱篃璁稿笇鏈涚敤鎴瘋處鎴蜂笉瀛樺湪錛岃屼笖浠栫殑鏂囦歡涔熷簲璇ヨ鍒犻櫎銆?/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灝嗕細琚皟鐢紝閭d箞鑴氭湰絳変簬浠涔堥兘娌″仛銆?/p>

淇濇寔鍘熷瓙鍖?/h1>

鍙堟槸浣犻渶瑕佷竴嬈℃洿鏂扮洰褰曚腑鐨勪竴澶у爢鏂囦歡錛屾瘮濡備綘闇瑕佸皢URL閲嶅啓鍒板彟涓涓綉绔欑殑鍩熷悕銆備綘涔熻浼氬啓錛?/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喅鏂規硶鏄皢榪欎釜鏀瑰彉鍋氭垚涓涓師瀛愭搷浣溿傚厛瀵規暟鎹仛涓涓壇鏈紝鍦ㄥ壇鏈腑鏇存柊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

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

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

]]> 国产福利电影一区二区三区,免费久久久久久久精 | 狠狠久久综合伊人不卡| 久久精品国产秦先生| 99热成人精品免费久久| 香蕉久久夜色精品国产尤物 | 久久91精品国产91| 久久精品国产男包| 久久久久综合网久久| 久久久WWW成人免费精品| 一本久道久久综合狠狠躁AV| 亚洲第一极品精品无码久久 | 欧美精品久久久久久久自慰| 精品久久777| 国产成人精品综合久久久久 | 人人狠狠综合久久亚洲婷婷| 伊人久久国产免费观看视频| 精品无码久久久久久午夜| 久久嫩草影院免费看夜色| 久久99精品国产麻豆| 午夜视频久久久久一区| 亚洲一区中文字幕久久| 久久久久久国产精品美女 | 99久久精品国产综合一区| 亚洲伊人久久成综合人影院 | 久久亚洲欧洲国产综合| 国产人久久人人人人爽| 无码国内精品久久综合88| 久久国产成人午夜aⅴ影院| 国产精品免费看久久久| 亚洲狠狠婷婷综合久久蜜芽| 久久成人国产精品一区二区| 韩国三级大全久久网站| 午夜精品久久久久久中宇| 亚洲а∨天堂久久精品| 97久久精品国产精品青草| 久久人妻AV中文字幕| 色婷婷综合久久久久中文字幕| 亚洲国产精品婷婷久久| 蜜桃麻豆www久久| 国产午夜电影久久| 91精品国产91久久久久久|