亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? shell編程案例詳解.txt

?? 無論你是新手還是老手
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
 1 #!/bin/bash
 2 #background-loop.sh
 3
 4 for i in 1 2 3 4 5 6 7 8 9 10				#第一個循環
 5 do
 6	echo -n "$i"
 7 done&						#在后臺運行這個循環
 8								#在第2個循環之后,將在某些時候執行.
 9 
10 echo	#這個'echo'某些時候將不會顯示.
11 
12 for i in 11 12 13 14 15 16 17 18 19 20		#第二個循環
13 do
14 	echo -n "$i"
15 done
16
17 echo	#這個'echo'某些時候將不會顯示.
18
19 #--------------------------------------------------------
20 
21 #期望的輸出應該是
22 #1 2 3 4 5 6 7 8 9 10
23 #11 12 13 14 15 16 17 18 19 20
24 
25 #然而實際的結果有可能是
26 #11 12 13 14 15 16 17 18 19 20
27 #1 2 3 4 5 6 7 8 9 10 bozo $
28 #(第2個'echo'沒執行,為什么?)
29 
30 #也可能是
31 #1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
32 #(第1個'echo'沒執行,為什么?)
33 
34 #非常少見的執行結果,也有可能是:
35 #11 12 13 1 2 3 4 5 6 7 8 9 10 14 15 16 17 18 19 20
36 #前臺的循環先于后臺的執行
37 
38 exit 0
39 
40 #	Nasimuddin Ansari 建議加一句 sleep 1
41 #+	在 6行和14行的 echo -n "$i"之后加
42 #+	將看到一些樂趣
################################End Script#########################################
		注意:在一個腳本內后臺運行一個命令,有可能造成這個腳本的掛起,等待一個按鍵
			響應.幸運的是,我們可以在Example 11-24附近,看到這個問題的解決辦法.

&&		與-邏輯操作.

-		選項,前綴.在所有的命令內如果想使用選項參數的話,前邊都要加上"-".

		COMMAND -[Option1][Option2][...]
		ls -al
		sort -dfu $filename
		set -- $variable

		 1 if [ $file1 -ot $file2 ]
		 2 then
		 3   echo "File $file1 is older than $file2."
		 4 fi
		 5 
		 6 if [ "$a" -eq "$b" ]
		 7 then
		 8   echo "$a is equal to $b."
		 9 fi
		10 
		11 if [ "$c" -eq 24 -a "$d" -eq 47 ]
		12 then
		13   echo "$c equals 24 and $d equals 47."
		14 fi

-		用于重定向 stdin 或 stdout.

################################Start Script#######################################
 1 (cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xpvf -)
 2 # 從一個目錄移動整個目錄樹到另一個目錄
 3 # [courtesy Alan Cox <a.cox@swansea.ac.uk>, with a minor change]
 4 
 5 # 1) cd /source/directory    源目錄
 6 # 2) &&                      與操作,如果cd命令成功了,那么就執行下邊的命令
 7 # 3) tar cf - .              'c'創建一個新文檔,'f'后邊跟'-'指定目標文件作為stdout
 8 #                            '-'后邊的'f'(file)選項,指明作為stdout的目標文件.
 9 #                            并且在當前目錄('.')執行.
10 # 4) |                       管道...
11 # 5) ( ... )                 一個子shell
12 # 6) cd /dest/directory      改變當前目錄到目標目錄.
13 # 7) &&                      與操作,同上.
14 # 8) tar xpvf -              'x'解檔,'p'保證所有權和文件屬性,
15 #							'v'發完整消息到stdout
16 #                            'f'后邊跟'-',從stdin讀取數據
17 #
18 #                            注意:'x' 是一個命令, 'p', 'v', 'f' 是選項.
19 # Whew!
20 
21 
22 
23 # 更優雅的寫法應該是
24 #   cd source/directory
25 #   tar cf - . | (cd ../dest/directory; tar xpvf -)
26 #
27 #     當然也可以這么寫:
28 # cp -a /source/directory/* /dest/directory
29 #     或者:
30 # cp -a /source/directory/* /source/directory/.[^.]* /dest/directory
31 #     如果在/source/directory中有隱藏文件的話.
################################End Script#########################################

################################Start Script#######################################
1 bunzip2 linux-2.6.13.tar.bz2 | tar xvf -
2 # --未解壓的tar文件--    | --然后把它傳遞到"tar"中--
3 # 如果 "tar" 沒能夠正常的處理"bunzip2",
4 # 這就需要使用管道來執行2個單獨的步驟來完成它.
5 # 這個練習的目的是解檔"bzipped"的kernel源文件.
################################End Script#########################################
		注意:在上邊這個例子中'-'不太象是bash的操作符,而更像是tar的參數.
		bash$echo "whatever" | cat -
		whatever

		在需要一個文件名的地方,-重定向輸出到stdout(如在tar和cf命令中),或者從
		stdin中接受輸入,而不是從一個文件中接受輸入.這是在管道中作為一個過濾
		器,來使用文件定位工具的一種辦法.
		bash$file
		用法: file [-bciknvzl] [-f namefile] [-m magicfiles] file...
		上邊這個例子file將會出錯,提示你如何使用file命令.

		添加一個"-"將得到一個更有用的結果.這將使得shell等待用戶輸入.
		bash$file -
		abc
		standard input:					ASCII text

		bash$file -
		#!/bin/bash
		standard input:					Bourn-Again shell script tesxt executable

		現在命令從stdin中接受了輸入,并分析它.

		"-"常用于管道后邊的命令,具體參看33.7節,來看使用技巧.
		使用diff命令來和另一個文件的一部分進行比較.
		grep Linux file1 | diff file2 -

		最后,一個真實世界的使用tar命令的例子.

Example 3-4. 備份最后一天所有修改的文件.
################################Start Script#######################################
 1 #!/bin/bash
 2 
 3 #  在一個"tarball"中(經過tar和gzip處理過的文件)
 4 #+ 備份最后24小時當前目錄下d所有修改的文件.
 5 
 6 BACKUPFILE=backup-$(date +%m-%d-%Y)
 7 #                 在備份文件中嵌入時間.
 8 #                 Thanks, Joshua Tschida, for the idea.
 9 archive=${1:-$BACKUPFILE}
10 #  如果在命令行中沒有指定備份文件的文件名,
11 #+ 那么將默認使用"backup-MM-DD-YYYY.tar.gz".
12 
13 tar cvf - `find . -mtime -1 -type f -print` > $archive.tar
14 gzip $archive.tar
15 echo "Directory $PWD backed up in archive file \"$archive.tar.gz\"."
16 
17 
18 #  Stephane Chazelas指出上邊代碼,
19 #+ 如果在發現太多的文件的時候,或者是如果文件
20 #+ 名包括空格的時候,將執行失敗.
21 
22 # Stephane Chazelas建議使用下邊的兩種代碼之一
23 # -------------------------------------------------------------------
24 #   find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar"
25 #      使用gnu版本的find.
26 
27 
28 #   find . -mtime -1 -type f -exec tar rvf "$archive.tar" '{}' \;
29 #         對于其他風格的UNIX便于移植,但是比較慢.
30 # -------------------------------------------------------------------
31 
32 
33 exit 0
################################End Script#########################################

		注意:以"-"開頭的文件名在使用"-"作為重定向操作符的時候,可能會產生問題.
		應該寫一個腳本來檢查這個問題,并給這個文件加上合適的前綴.如:
		./-FILENAME, $PWD/-FILENAME,或$PATHNAME/-FILENAME.

		如果變量的值以"-"開頭,可能也會引起問題.
		1 var="-n"
		2 echo $var
		3 #具有"echo -n"的效果了,這樣什么都不會輸出的.

-		之前工作的目錄."cd -"將回到之前的工作目錄,具體請參考"$OLDPWD"環境變量.
		注意:一定要和之前討論的重定向功能分開,但是只能依賴上下文區分.

-		算術減號.

=		算術等號,有時也用來比較字符串.
		1 a=28
		2 echo $a   # 28

+		算術加號,也用在正則表達式中.
+		選項,對于特定的命令來說使用"+"來打開特定的選項,用"-"來關閉特定的選項.

%		算術取模運算.也用在正則表達式中.

~		home目錄.相當于$HOME變量.~bozo是bozo的home目錄,并且ls ~bozo將列出其中的
		內容. ~/就是當前用戶的home目錄,并且ls ~/將列出其中的內容,如:
		bash$ echo ~bozo
		/home/bozo

		bash$ echo ~
		/home/bozo

		bash$ echo ~/
		/home/bozo/

		bash$ echo ~:
		/home/bozo:

		bash$ echo ~nonexistent-user
		~nonexistent-user

~+		當前工作目錄,相當于$PWD變量.

~-		之前的工作目錄,相當于$OLDPWD內部變量.

=~		用于正則表達式,這個操作將在正則表達式匹配部分講解,只有version3才支持.

^		行首,正則表達式中表示行首."^"定位到行首.


控制字符
		修改終端或文本顯示的行為.控制字符以CONTROL + key組合.
		控制字符在腳本中不能正常使用.
		Ctl-B		光標后退,這應該依賴于bash輸入的風格,默認是emacs風格的.
		Ctl-C		Break,終止前臺工作.
		Ctl-D		從當前shell登出(和exit很像)
					"EOF"(文件結束符).這也能從stdin中終止輸入.
					在console或者在xterm window中輸入的時候,Ctl-D將刪除光標下字符.
					當沒有字符時,Ctrl-D將退出當前會話.在xterm window也有關閉窗口
					的效果.
		Ctl-G		beep.在一些老的終端,將響鈴.
		Ctl-H		backspace,刪除光標前邊的字符.如:
					 1 #!/bin/bash
					 2 # 在一個變量中插入Ctl-H
					 3 
					 4 a="^H^H"                  # 兩個 Ctl-H (backspaces).
					 5 echo "abcdef"             # abcdef
					 6 echo -n "abcdef$a "       # abcd f
					 7 # 注意結尾的空格 ^              ^ 兩個 twice.
					 8 echo -n "abcdef$a"        # abcdef
					 9 #  結尾沒有空格             沒有 backspace 的效果了(why?).
					10                           # 結果并不像期望的那樣
					11 echo; echo
		Ctl-I		就是tab鍵.
		Ctl-J		新行.
		Ctl-K		垂直tab.(垂直tab?新穎,沒聽過)
					作用就是刪除光標到行尾的字符.
		Ctl-L		clear,清屏.
		Ctl-M		回車
################################Start Script#######################################
 1 #!/bin/bash
 2 # Thank you, Lee Maschmeyer, for this example.
 3 
 4 read -n 1 -s -p $'Control-M leaves cursor at beginning of this line. Press Enter. \x0d'
 5                                   #當然,'0d'就是二進制的回車.
 6 echo >&2   #  '-s'參數使得任何輸入都不將回顯出來
 7            #+ 所以,明確的重起一行是必要的.
 8 
 9 read -n 1 -s -p $'Control-J leaves cursor on next line. \x0a'
10 echo >&2   #  Control-J 是換行.
11 
12 ###
13 
14 read -n 1 -s -p $'And Control-K\x0bgoes straight down.'
15 echo >&2   #  Control-K 是垂直制表符.
16 
17 # 關于垂直制表符效果的一個更好的例子見下邊:
18 
19 var=$'\x0aThis is the bottom line\x0bThis is the top line\x0a'
20 echo "$var"
21 #  這句與上邊的例子使用的是同樣的辦法,然而:
22 echo "$var" | col
23 #  這將造成垂直制表符右邊的部分在左邊部分的上邊.
24 #  這也解釋了為什么我們要在行首和行尾加上一個換行符--
25 #+ 來避免一個混亂的屏幕輸出.
26 
27 # Lee Maschmeyer的解釋:
28 # ---------------------
29 #  In the [first vertical tab example] . . . the vertical tab
29 #  在這里[第一個垂直制表符的例子中] . . . 這個垂直制表符
30 #+ makes the printing go straight down without a carriage return.
31 #  This is true only on devices, such as the Linux console,
32 #+ that can't go "backward."
33 #  The real purpose of VT is to go straight UP, not down.
34 #  It can be used to print superscripts on a printer.
34 #  它可以用來在一個打印機上打印上標.
35 #  col的作用,可以用來模仿VT的合適的行為.
36 
37 exit 0
################################End Script#########################################
		Ctl-Q		繼續(等價于XON字符),這個繼續的標準輸入在一個終端里
		Ctl-S		掛起(等價于XOFF字符),這個被掛起的stdin在一個終端里,用Ctl-Q恢復
		Ctl-U		刪除光標到行首的所有字符,在某些設置下,刪除全行.
		Ctl-V		當輸入字符時,Ctl-V允許插入控制字符.比如,下邊2個例子是等價的
					echo -e '\x0a'
					echo <Ctl-V><Ctl-J>
					Ctl-V在文本編輯器中十分有用,在vim中一樣.
		Ctl-W		刪除當前光標到前邊的最近一個空格之間的字符.
					在某些設置下,刪除到第一個非字母或數字的字符.
		Ctl-Z		終止前臺工作.
		
空白部分
		分割命令或者是變量.包括空格,tab,空行,或任何它們的組合.
		在一些特殊情況下,空白是不允許的,如變量賦值時,會引起語法錯誤.
		空白行在腳本中沒有效果.
		"$IFS",對于某些命令輸入的特殊變量分割域,默認使用的是空白.
		如果想保留空白,使用引用.

注意事項:
[1]		shell做大括號的命令擴展.但是命令本身需要對擴展的結果作處理.
[2]		例外:在pipe中的一個大括號中的代碼段可能運行在一個子shell中.
		1 ls | { read firstline; read secondline; }
		2 #  錯誤,在打括號中的代碼段,將運行到子shell中.
		3 #+ 所以ls的輸出將不能傳遞到代碼塊中.
		4 echo "First line is $firstline; second line is $secondline"  # 不能工作
		5 
		6 # Thanks, S.C.
[3]		換行符也被認為是空白.這也解釋了為什么一個空行也會被認為是空白.



第4章 變量和參數的介紹
======================

4.1 變量替換
------------
$		變量替換操作符
		只有在變量被聲明,賦值,unset或exported或者是在變量代表一個signal的時候,
		變量才會是以本來的面目出現在腳本里.變量在被賦值的時候,可能需要使用"=",
		read狀態或者是在循環

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久婷婷综合激情| 亚洲国产精品精华液网站| av在线不卡观看免费观看| 亚洲与欧洲av电影| 亚洲国产精品成人综合 | 麻豆免费精品视频| 中文字幕高清一区| 欧美电影免费观看高清完整版在 | 一区二区三区自拍| 国产欧美日韩激情| 精品国产91久久久久久久妲己| 91麻豆免费看| 国产剧情一区在线| 日本中文字幕一区二区视频| 一区二区三区 在线观看视频| 国产性天天综合网| 日韩亚洲欧美一区二区三区| 欧美三级电影网| 91女神在线视频| eeuss鲁片一区二区三区在线观看| 麻豆成人在线观看| 日韩精品一二三区| 亚洲福利一区二区三区| 椎名由奈av一区二区三区| 久久久久久久精| 欧美成人精品高清在线播放| 91精品国产综合久久久久久久久久 | 亚洲高清中文字幕| 亚洲另类在线一区| 中文字幕在线观看不卡| 国产欧美一区二区三区在线看蜜臀| 欧美电影免费观看高清完整版在线| 91精品黄色片免费大全| 欧美日本在线一区| 欧美日韩在线播放一区| 在线看不卡av| 在线观看日韩一区| 欧美性xxxxxxxx| 欧美午夜理伦三级在线观看| 日本乱码高清不卡字幕| 在线中文字幕不卡| 欧美日韩电影在线播放| 欧美日韩中文精品| 91福利国产成人精品照片| 欧美综合久久久| 欧美日韩日日骚| 在线电影院国产精品| 欧美一区二区三区在线观看视频| 欧美一级一区二区| 精品国产乱码久久久久久夜甘婷婷 | 成人动漫在线一区| 972aa.com艺术欧美| 在线观看一区日韩| 欧美另类变人与禽xxxxx| 欧美精品乱人伦久久久久久| 欧美一区二区三区在线观看| 精品福利视频一区二区三区| 亚洲国产精品精华液ab| 亚洲欧美日韩国产中文在线| 亚洲成人精品在线观看| 日本亚洲免费观看| 国产福利一区二区三区在线视频| 成人国产免费视频| 91久久精品日日躁夜夜躁欧美| 欧美日韩国产美| 久久夜色精品国产噜噜av| 亚洲国产精品激情在线观看| 亚洲精品v日韩精品| 日韩精品三区四区| 丰满亚洲少妇av| 欧洲av一区二区嗯嗯嗯啊| 欧美一区二区国产| 国产精品国产三级国产普通话蜜臀 | av日韩在线网站| 欧美色区777第一页| 2020国产精品| 亚洲手机成人高清视频| 日韩av一级片| 成+人+亚洲+综合天堂| 欧美理论在线播放| 欧美激情综合五月色丁香| 一区二区三区毛片| 国产精品 欧美精品| 在线这里只有精品| 国产婷婷色一区二区三区| 亚洲综合激情另类小说区| 久久99精品久久久久婷婷| heyzo一本久久综合| 欧美大片在线观看一区| 亚洲欧美日韩在线| 国产在线麻豆精品观看| 欧美性videosxxxxx| 亚洲国产成人私人影院tom | 99精品欧美一区| 日韩女优制服丝袜电影| 亚洲一区免费视频| 国产精品99久久久久久似苏梦涵| 欧美日韩国产精选| 日韩美女视频一区二区 | 秋霞电影网一区二区| www.日韩精品| 精品成人私密视频| 午夜欧美一区二区三区在线播放| 成人免费视频一区| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲午夜精品网| 99精品桃花视频在线观看| 久久久精品国产免大香伊| 肉色丝袜一区二区| 色偷偷成人一区二区三区91| 国产三级三级三级精品8ⅰ区| 亚洲va国产天堂va久久en| 成年人午夜久久久| 国产亚洲视频系列| 麻豆91免费观看| 欧美日韩和欧美的一区二区| 亚洲欧美一区二区久久| 成年人国产精品| 国产欧美日韩久久| 国产精品一二三四区| 日韩一级黄色片| 免费成人在线网站| 欧美日韩一卡二卡三卡| 亚洲最快最全在线视频| 91偷拍与自偷拍精品| 欧美经典一区二区三区| 国产电影一区二区三区| www国产成人免费观看视频 深夜成人网| 日日摸夜夜添夜夜添精品视频| 欧美亚洲一区二区在线| 亚洲激情自拍偷拍| 色老头久久综合| 亚洲精品国产视频| 欧美最新大片在线看| 亚洲美女免费视频| 色婷婷综合久久久久中文一区二区| 国产精品无人区| av亚洲精华国产精华精| 中文字幕佐山爱一区二区免费| a亚洲天堂av| 亚洲视频一区二区在线观看| 色综合天天综合色综合av | 亚洲国产精品一区二区久久恐怖片 | 95精品视频在线| 国产精品久久毛片a| 91一区二区在线观看| 一区二区三区精密机械公司| 91福利精品视频| 天天操天天色综合| 欧美一级免费大片| 黄色小说综合网站| 久久久99精品久久| 99久久久久免费精品国产| 亚洲天堂成人网| 欧洲一区在线电影| 日韩激情视频在线观看| 欧美大片日本大片免费观看| 国产成人夜色高潮福利影视| 国产精品久久看| 欧美四级电影网| 久久精品国产精品亚洲精品| 久久久精品日韩欧美| 91色九色蝌蚪| 免费看日韩a级影片| 国产日韩在线不卡| 在线观看免费亚洲| 另类小说图片综合网| 亚洲国产精品国自产拍av| 欧美亚洲综合在线| 久久成人av少妇免费| 国产精品不卡一区二区三区| 欧美在线视频全部完| 国产在线精品一区二区| 亚洲精品美腿丝袜| 日韩一区二区中文字幕| voyeur盗摄精品| 美女被吸乳得到大胸91| 国产精品久久久久久久久免费桃花| 精品视频免费在线| 国产精品自拍毛片| 亚洲男人电影天堂| 精品国产1区2区3区| 色香蕉久久蜜桃| 国模大尺度一区二区三区| 亚洲色大成网站www久久九九| 日韩视频永久免费| 91热门视频在线观看| 国产精品综合一区二区三区| 一级精品视频在线观看宜春院 | 欧美色综合网站| 国产成人欧美日韩在线电影| 亚洲国产一区二区a毛片| 国产欧美精品一区| 欧美美女bb生活片| 99久久er热在这里只有精品66| 日本女优在线视频一区二区| 亚洲色图丝袜美腿| 久久久亚洲午夜电影| 欧美一区二区日韩| 色8久久精品久久久久久蜜 |