亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: send_linux
打印 上一主題 下一主題

ChinaUnix技術(shù)實(shí)踐之四----Shell編程大賽! [復(fù)制鏈接]

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
51 [報(bào)告]
發(fā)表于 2011-05-19 02:06 |只看該作者
哇, 已經(jīng)開始好幾天了, 今天才在sina微薄看到
angle4 發(fā)表于 2011-05-18 22:56



    我也是昨天才發(fā)現(xiàn),這比賽還是越遲提交,越吃虧的。

論壇徽章:
49
15-16賽季CBA聯(lián)賽之福建
日期:2016-06-22 16:22:002015年亞洲杯之中國
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36雙魚座
日期:2015-01-02 22:04:33午馬
日期:2014-11-25 09:58:35辰龍
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龍
日期:2014-08-21 10:47:58
52 [報(bào)告]
發(fā)表于 2011-05-19 09:51 |只看該作者
我也是昨天才發(fā)現(xiàn),這比賽還是越遲提交,越吃虧的。
hq8318 發(fā)表于 2011-05-19 02:06



    呵呵

重在參與嘛

論壇徽章:
0
53 [報(bào)告]
發(fā)表于 2011-05-19 12:03 |只看該作者

論壇徽章:
0
54 [報(bào)告]
發(fā)表于 2011-05-19 12:43 |只看該作者
本帖最后由 angle4 于 2011-05-19 13:02 編輯

發(fā)帖編輯, 格式老亂, 咋整?

論壇徽章:
0
55 [報(bào)告]
發(fā)表于 2011-05-19 12:50 |只看該作者
本帖最后由 angle4 于 2011-05-20 15:25 編輯

1. 用最簡潔的命令列出當(dāng)前目錄下的一級(jí)子目錄,可以不包含隱藏目錄(目錄名以.開頭的目錄)

  1. # 顯示當(dāng)前目錄下的子目錄
  2. echo "當(dāng)前目錄下的子目錄"
  3. ls -l | grep -E '^d' | awk '{print $8}'

  4. # 顯示當(dāng)前目錄下的子目錄, 包含隱藏目錄
  5. echo "當(dāng)前目錄下的子目錄, 包含隱藏目錄"
  6. ls -la | grep -E '^d' | awk '{print $8}' | grep -Ev '^\.$|^\.\.
  7. # 下面的也可以, 沒法現(xiàn)那個(gè)更簡潔
  8. # find . -maxdepth 1 -type d ! -regex '^\.
復(fù)制代碼
2. GNU sed 提供了-i選項(xiàng),為什么有人說sed -i 并不象 ed 一樣真正的編輯文件?(提示:觀察文件改變前后的inode)

  1. 的確, sed -i 是先用sed處理完,再rename操作的。
  2. 從 strace sed -i 's/1/x/g' out 就可以清楚的看到。

  3. 看inode也很清楚,
  4. $ cal > out
  5. $ ls -i out
  6. 1541258 out
  7. $ sed -i 's/2/x/g' out && ls -i out
  8. 1541255 out
復(fù)制代碼
3. 用shell寫一個(gè)cgi腳本,提供一個(gè)簡單的webmail介面,將本地的一個(gè)文件通過web服務(wù)器發(fā)送到指定的郵箱

  1. #!/bin/bash

  2. # 用shell寫一個(gè)cgi腳本,提供一個(gè)簡單的webmail介面,將本地的一個(gè)文件通過web服務(wù)器發(fā)送到指定的郵箱

  3. echo Content-type: text/html
  4. echo ""

  5. email=$(echo "$QUERY_STRING" | sed -n 's/^.*email=\([^&]*\).*$/\1/p' | sed "s/%40/@/g")
  6. file_name=$(echo "$QUERY_STRING" | sed -n 's/^.*file_name=\([^&]*\).*$/\1/p' | sed "s/%20/ /g")

  7. /bin/cat << EOF
  8. <html>
  9. <head>
  10.   <title>webmail cgi</title>
  11. </head>
  12. <body>
  13. EOF
  14. if [ -z $email  -o -z $file_name ]; then
  15.         /bin/cat << EOF
  16.   <form method="get">
  17.     Email: <input type="text" name="email"/><br />
  18.     File : <input type="file" name="file_name"/><br />
  19.     <input type="submit" value="submit"/><br />
  20.   </form>
  21. EOF
  22. else
  23.         mail -s $file_name $email < $file_name \
  24.                 && echo "Done.</br>" \
  25.                 || echo "Error ..."
  26.         #echo "email: $email</br>"
  27.         #echo "file_name: $file_name</br>"
  28. fi

  29. /bin/cat << EOF
  30. </body>
  31. </html>
  32. EOF
復(fù)制代碼
4. awk -F'' 與 awk -F '' 一樣嗎?

  1. 不一樣,
  2. awk -F field-separator # awk -F ':'
  3. awk -Ffield-separator  # awk -F:

  4. 所以, awk -F '' 結(jié)果是每個(gè)字符都是一個(gè)字段; 而, awk -F'' 是有語法錯(cuò)誤的.
復(fù)制代碼
5. 這條語句有什么作用? sed -if /script/scr.sedcc test.txt

  1. -if 將test.txt備份為 test.txtf
  2. /script/scr.sedcc 會(huì)做為sed命令執(zhí)行, 結(jié)果就是在test.txt中查找包含script的行,一行一行的查找,找到后,將該行的r.sed替換為空,每行只替換第一次找到的.
  3. sed 中s是字符串替換,c在這是分割符,然后就很明顯了.
復(fù)制代碼
6. #!/bin/sh
# the next line restarts using tclsh \
exec tclsh "$0" "$@"
是如何執(zhí)行的?與"#!/usr/local/bin/tclsh"相比,它有什么優(yōu)點(diǎn)?

  1. 執(zhí)行過程:
  2.   sh首先處理這個(gè)腳本, 忽略第二行(注釋), 然后,執(zhí)行第三行.
  3.   exec 使shell停止執(zhí)行,并且開始運(yùn)行tclsh, tclsh重新處理這個(gè)腳本,它把這三行都作為注釋(因?yàn)榈谝恍心┯袀(gè)\, 所以第三行也是注釋).
  4.   這個(gè)腳本后面的內(nèi)容有tclsh解釋、執(zhí)行.

  5. 優(yōu)點(diǎn):
  6.   1. 不用考慮tclsh的絕對(duì)路徑,只要PATH中可以找到就行, shebang中可執(zhí)行文件必須寫絕對(duì)路徑,而不同的發(fā)行版tclsh的默認(rèn)安裝路徑可能不同.
  7.   2. 可以避免shebang過長, 有些早期發(fā)行版對(duì)shebang長度有限制.
  8.   3. shebang中必須是二進(jìn)制的可執(zhí)行文件,而不能是一個(gè)shell腳本, 而,有時(shí)為了處理多架構(gòu)和多個(gè)操作系統(tǒng),tclsh很可能是一個(gè)shell腳本.
  9.   4. 把tclsh做成一個(gè)腳本,有助于使用不同版本的tclsh.
復(fù)制代碼
7. #!/bin/sed -f"  shebang 后可有其它字符嗎?為什么?

  1. 可以, 如: #!/bin/sed -fa.sed, a.sed 將作為 -f 的參數(shù). -f后的所有字符串將作為一個(gè)參數(shù), 所以, #!/bin/sed -fa.sed -fb.sed將報(bào)錯(cuò),除非你當(dāng)前目錄有個(gè)文件名為"a.sed -fb.sed".
復(fù)制代碼
8. GNU awk的$1=$1到底有什么作用?$0=$0呢?

  1. # from awk manpage
  2. # Assigning a value to an existing field causes the whole record to  be  rebuilt  when  $0  is  referenced.
  3. # Similarly, assigning a value to $0 causes the record to be resplit, creating new values for the fields.

  4. # sample code
  5. $ echo 'a b c' | awk '{print $0; $1=$1;OFS=":"; FS=":"; print $0; print $1}'
  6. a b c
  7. a:b:c
  8. a

  9. $ echo 'a b c' | awk '{print $0; $0=$0;OFS=":"; FS=":"; print $0; print $1}'
  10. a b c
  11. a b c
  12. a

  13. 從上面的例子可以看出:
  14. $1=$1導(dǎo)致整個(gè)記錄($0)重新創(chuàng)建,字段也會(huì)根據(jù)FS的值重新分割.
  15. $0=$0只會(huì)使字段根據(jù)FS的值重新分割.
復(fù)制代碼

論壇徽章:
0
56 [報(bào)告]
發(fā)表于 2011-05-19 13:07 |只看該作者
[i=s] 本帖最后由 angle4 于 2011-05-19 18:02 編輯 [/i]

9. 寫一個(gè)shell腳本,輸出CU現(xiàn)有的版面和相應(yīng)版主,并統(tǒng)計(jì)有多少個(gè)版面及多少個(gè)版主。

ChinaUnix共有74個(gè)版塊
ChinaUnix共有165個(gè)版主[code]
#!/bin/bash

# root url
RURL="http://72891.cn"

# 獲取版塊
# in: 如果無參數(shù)調(diào)用,獲取首頁的所有版塊;
#     如果提供一個(gè)參數(shù)調(diào)用, 返回該版塊內(nèi)的子版塊
# out: 輸出獲取到的版塊名
function get_forums()
{
    if [ -z $1 ]; then
        curl $RURL -o- 2>/dev/null | grep -Eo 'forum[^"]+\.html' | sort -u
    else
        curl $RURL/$1 -o- 2>/dev/null | grep -Eo 'forum[^"]+\.html' | \
            grep -v "$1" | sort -u
    fi

}

# 獲取指定版塊的版塊名
# in: 版塊, 如: forum-216-1.html
# out: 輸出該版塊的名字
function get_forum_name()
{
    curl $RURL/$1 -o- 2>/dev/null | grep forumheader -A 1 | \
        iconv -f GBK -t UTF-8 | \
        cut -d'>' -f2 | cut -d '<' -f1
}

# 獲取指定版塊的所有版主
# in: 版塊, 如: forum-216-1.html
# out: 輸出該版塊的所有版主
function get_moderators()
{
    test -z $1 && echo "usage $0 <forum-123-1.html" && exit
    curl $RURL/$1 -o- 2>/dev/null | \
        grep modedby -A 1 | iconv -f GBK -t UTF-8 | \
        tr ',' '\n' | \
        cut -d'>' -f2 | cut -d'<' -f1 | \
        grep -Ev '^
}

function main()
{
    my_forums=$(get_forums)
    for x in $my_forums; do
        get_forum_name $x
        echo -e "\t$(get_moderators $x | xargs)"
        my_sub_forums=$(get_forums $x)
        for sub_x in $my_fub_forums; do
            get_forum_name $sub_x
            echo -e "\t$(get_moderators $sub_x | xargs)"
        done
    done
}

TMPFILE=$(mktemp)
main | tee $TMPFILE

# 版塊數(shù)
forum_num=$(grep -Ev '^[[:space:]]' $TMPFILE | grep -Ev '^ | sort -u | wc -l)
echo "ChinaUnix共有$forum_num個(gè)版塊"

# 版主數(shù)
moderator_num=$(grep -E '^[[:space:]]' $TMPFILE | tr -d '\t' | tr ' ' '\n' | grep -Ev '^ | sort -u | wc -l)
echo "ChinaUnix共有$moderator_num個(gè)版主"

rm -f $TMPFILE

[/code]

論壇徽章:
0
57 [報(bào)告]
發(fā)表于 2011-05-19 13:08 |只看該作者
本帖最后由 angle4 于 2011-05-19 13:12 編輯

10. 人機(jī)五子棋。原始規(guī)則(無禁手),最好加上標(biāo)準(zhǔn)規(guī)則,三手交換(即黑下第二手之后白可以提出交換),五手兩打,黑三三禁手,黑四四禁手,黑長連禁手(超過5個(gè)子相連),逢五無禁手。白無禁手,長連也算勝。關(guān)鍵在于人機(jī)對(duì)下。
[code][/code]

論壇徽章:
0
58 [報(bào)告]
發(fā)表于 2011-05-19 13:13 |只看該作者
先占個(gè)位, 慢慢寫

論壇徽章:
0
59 [報(bào)告]
發(fā)表于 2011-05-19 15:16 |只看該作者
支持,占座先

論壇徽章:
13
CU大;照
日期:2013-03-14 14:14:082016科比退役紀(jì)念章
日期:2016-07-22 11:15:35數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-05-27 06:20:002015亞冠之吉達(dá)阿赫利
日期:2015-08-05 10:06:542015年亞洲杯之韓國
日期:2015-04-01 16:05:42雙魚座
日期:2014-11-13 11:04:24丑牛
日期:2014-07-25 17:29:54子鼠
日期:2014-04-25 12:25:45丑牛
日期:2014-04-17 08:35:48巨蟹座
日期:2014-04-16 16:50:05CU大牛徽章
日期:2013-03-14 14:14:29CU大;照
日期:2013-03-14 14:14:26
60 [報(bào)告]
發(fā)表于 2011-05-19 17:20 |只看該作者
這題看了,我連回答的勇氣都沒了
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP