- 最後登錄
- 2024-3-30
- 在線時間
- 459 小時
- 註冊時間
- 2009-1-17
- 閱讀權限
- 20
- 精華
- 0
- UID
- 5666272
- 帖子
- 915
- 積分
- 698 點
- 潛水值
- 18604 米
| 本帖最後由 l12436 於 2013-5-3 09:37 AM 編輯
小弟來發一下shell script的教學,基本上就是linux指令的整合。
由於小弟的shell script都是要寫的時候才會想到要寫甚麼,我會慢慢發佈一些教學。
#!/bin/bash
list=$(ls -b | grep 'tar\.gz')
for file in $list
do
echo $file
done
這個是小弟常用的程式碼片段,他可以搜尋我們需要的檔案。後面的grep是過濾結果,這次我們要尋找的檔案室tar.gz,也就是使用tar zcvf指令壓縮的檔案。類似的片段可以達到一次重複命名多個檔案。 ... |
|
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com |
| |
| |
erobyi 該用戶已被刪除 | 若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
無意中發現,怎grep不到呢?在一些條件下?
egrep應比較好用。。。
開頭要有檔名,中間一點,以c後綴結尾。
試出來的,參考看看,多謝您的心得分享。
補充內容 (2013-4-27 08:49 PM):
無意中發現的,正好在grep一些東西。。。 |
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊 |
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com |
| |
| |
- 最後登錄
- 2024-3-30
- 在線時間
- 459 小時
- 註冊時間
- 2009-1-17
- 閱讀權限
- 20
- 精華
- 0
- UID
- 5666272
- 帖子
- 915
- 積分
- 698 點
- 潛水值
- 18604 米
| 回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。 因為grep支援正規化表示,所以有些會不一樣。
正常來講你直接使用'\.c'就好了。
|
|
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。 |
| |
| |
- 最後登錄
- 2024-3-30
- 在線時間
- 459 小時
- 註冊時間
- 2009-1-17
- 閱讀權限
- 20
- 精華
- 0
- UID
- 5666272
- 帖子
- 915
- 積分
- 698 點
- 潛水值
- 18604 米
| 若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。 本帖最後由 l12436 於 2013-4-27 10:20 PM 編輯
剛剛發現因為我的程式碼是手寫的,沒有測試過XDDD。所以可能會有錯XD
我把教學放在一樓好了 |
|
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com |
| |
| |
erobyi 該用戶已被刪除 | 成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。 l12436 發表於 2013-4-27 10:02 PM
剛剛發現因為我的程式碼是手寫的,沒有測試過XDDD。所以可能會有錯XD
我把教學放在一樓好了 ...
都無關係啊。。。 ...
|
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊 |
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com |
| |
| |
- 最後登錄
- 2024-3-30
- 在線時間
- 459 小時
- 註冊時間
- 2009-1-17
- 閱讀權限
- 20
- 精華
- 0
- UID
- 5666272
- 帖子
- 915
- 積分
- 698 點
- 潛水值
- 18604 米
| 若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。 本帖最後由 l12436 於 2013-5-3 09:27 AM 編輯
erobyi 發表於 2013-5-3 09:16 AM
都無關係啊。。。
明白整體的意思就好
好像都那樣寫,因為好眼熟。。。 ... |
|
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。 |
| |
| |
erobyi 該用戶已被刪除 | l12436 發表於 2013-5-3 09:23 AM
這個其實我已經知道了==,我是用linux快4年的老手了,我的桌上型電腦已經沒有安裝windows了。所以這個部份 ...
這不是egrep,這就是grep啊,basic 的grep(grep-G) ... |
|
|
| |
| |
- 最後登錄
- 2024-3-30
- 在線時間
- 459 小時
- 註冊時間
- 2009-1-17
- 閱讀權限
- 20
- 精華
- 0
- UID
- 5666272
- 帖子
- 915
- 積分
- 698 點
- 潛水值
- 18604 米
| 如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。 erobyi 發表於 2013-5-3 11:46 AM
這不是egrep,這就是grep啊,basic 的grep(grep-G)
在下不是用egrep。。。
哈,基本上我不太會用他的進階功能,因為到目前為止我寫的script還沒需要用到他。... |
|
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。 |
| |
| |
sleepless-man 該用戶已被刪除 | 若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com |
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。 |
| |
| |
ardisia 該用戶已被刪除 | 若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com 大概就是以下幾個的組合
getopts
bash 的基本指令
sed /awk
regular expression (特別重要)
就可以寫出很好用的shell script
|
|
分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。 |
| |
| |
- 最後登錄
- 2024-3-30
- 在線時間
- 459 小時
- 註冊時間
- 2009-1-17
- 閱讀權限
- 20
- 精華
- 0
- UID
- 5666272
- 帖子
- 915
- 積分
- 698 點
- 潛水值
- 18604 米
| ardisia 發表於 2013-5-27 03:17 PM
大概就是以下幾個的組合
getopts
是,不過我的都是用基礎指令堆起來了,當然,只有了解基礎的shell不夠,我後來寫的程式只了解基礎很難實作出我要的程式。... |
|
|
| |
| |
- 最後登錄
- 2024-3-30
- 在線時間
- 459 小時
- 註冊時間
- 2009-1-17
- 閱讀權限
- 20
- 精華
- 0
- UID
- 5666272
- 帖子
- 915
- 積分
- 698 點
- 潛水值
- 18604 米
| 若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。 最近多完了一個東西
adduser='
<window title="input argument" window_position="1" default_height="320" default_width="480">
<vbox>
<text>
<label>argument</label> ... |
|
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。 |
| |
| |
阿爾托利亞saber 該用戶已被刪除 | |
回覆中加入附件並不會使你增加積分,請使用主題方式發佈附件。 |
| |
| |
erobyii 該用戶已被刪除 | 分享使你變得更實在,可以使其他人感到快樂,分享是我們的動力。今天就來分享你的資訊、圖片或檔案吧。 本帖最後由 erobyii 於 2013-6-28 10:34 AM 編輯
教學03
- arg="$@"
- argu=(${argu// / })
- for (( i=0; i<${#argu[@]}; i=i+1 ))
- do
- if [ -f "${argu[$i]}" ]; then
- mv "${argu[$i]}" "${argu[$i]//tar.gz/tgz}"
- fi
- done
複製代碼
程式碼要用code才行,像這樣。比較整齊。。。
===================================
研究一下教學03。。。
教學03
arg="$@"
argu=(${argu// / }) #1 把傳入的參數做成數組
for (( i=0; i<${#argu[@]}; i=i+1 )) #2 for 中間的是 array 長度
do
if [ -f "${argu[$i]}" ]; then #3 若有檔案存在,就mv xxx xxx.tgt
mv "${argu[$i]}" "${argu[$i]//tar.gz/tgz}"
fi
done
1. argu=(${argu// / }) 是否有錯?
2. $@ 就是 positional parameter,會變成這種形式 $1 $2 $3
3. ${argu//xxx/yyy} 就是若 argu 有match xxx,便以yyy代之。// 就是 greedy match
4 ${#argu[@]} 就是數組長 ${#xxx},開頭有個#,都長度有關係。。
5 ${argu[$i]} 就是數組元素
P.S. 版主您好,我的密碼本不小心全刪了,不是多重分身,這樣可以嗎?
補充內容 (2013-6-28 10:38 AM):
linux 工具的學習也是好重要
補充內容 (2013-6-29 08:22 AM):
多謝大大... |
|
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。 |
| |
| |
- 最後登錄
- 2024-3-30
- 在線時間
- 459 小時
- 註冊時間
- 2009-1-17
- 閱讀權限
- 20
- 精華
- 0
- UID
- 5666272
- 帖子
- 915
- 積分
- 698 點
- 潛水值
- 18604 米
| 成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。 erobyii 發表於 2013-6-28 10:24 AM
教學03
1.有,把${argu// / }改成${arg// / },因為程式是手打的,沒有測試。
2.那個單純只是擷取所有的參數,可以使用for list in $@去讀取。 ...
|
|
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。 |
| |
| |
Powered by Discuz!
© Comsenz Inc.
重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。