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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5152 | 回復(fù): 17
打印 上一主題 下一主題

人氣少了,拿個以前的練習(xí)灌灌水吧。  關(guān)閉 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2005-09-19 14:50 |只看該作者 |倒序瀏覽
以前寫的,用來加強對 bash builtin 的記憶..hehehe
灌水相當(dāng)合用
#! /bin/bash
# A little game to guess bash builtin command
# written by no_spam_twf_cc@yahoo.com.hk
# $date: Jul 20,2004 $PROG: guess.sh   $LICINCE: PUBLIC DOMAIN

# Program name
PROG=${0##*/}

# array, contains command name of bash builtin
KEYWORD=(alias bind builtin cd compgen continue dirs echo eval
         exit false fg for getopts help if kill local popd pushd
         read return set shopt suspend time trap type ulimit unalias
         until wait bg break case command complete
         declare disown enable exec export fc for function hash history
         jobs let logout printf pwd readonly select shift source test
         times true typeset umask unset variables while \: \(\( \[\[ \[)

# Get a random word to guess
WORD=${KEYWORD[$(($RANDOM%${#KEYWORD[@]}))]}

# Length of the word
LENGTH="${#WORD}"

# Split the word , array
SPLIT_WORD=($(echo $WORD | sed 's/./& /g'))

# replace the word by -
GUESS=$(echo $WORD | sed 's/./-/g')

# function to get user input
function MyGuess {
echo -n 'Guess the command: ' >&2
read -n 1
}

# function, displays information
function ShowInfo {
echo "The builtin command contains $LENGTH letters"
echo 'Guess the letter one by one.'
echo "$GUESS"
}
# header
cat<<!
#######################################################

$(echo "Hello $(whoami)", welcome to $(echo $PROG)
It is a little game to guess BASH builtin command
Here we go.

#######################################################

!

ShowInfo
# main loop

for ((i=0 ; i<$LENGTH ; ++i))
do
     MyGuess
     if [ "$REPLY" != "${SPLIT_WORD[$i]}" ] ; then
           echo
           echo -e "The letter is \033[31m${SPLIT_WORD[$i]}\033[39m"
     else
           echo
           echo -e "\033[32mRight.\033[39m"
     fi

           ANSWER="$ANSWER${SPLIT_WORD[$i]}"
           DISPLAY="${ANSWER}${GUESS(($i + 1))}"
           echo "$DISPLAY"

done
echo 'Thankyou for playing.'
echo ""
# Display usage
help $(echo $WORD)

重看自己的「作品」,真是進步不大 ...

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
2 [報告]
發(fā)表于 2005-09-19 15:13 |只看該作者

人氣少了,拿個以前的練習(xí)灌灌水吧。

寫得不錯啊! 加油!

只是, 以 shell 版的宗旨來說, 不在乎人氣啊....

論壇徽章:
0
3 [報告]
發(fā)表于 2005-09-19 15:19 |只看該作者

人氣少了,拿個以前的練習(xí)灌灌水吧。

    謝謝

論壇徽章:
0
4 [報告]
發(fā)表于 2005-09-19 16:21 |只看該作者

人氣少了,拿個以前的練習(xí)灌灌水吧。

還是用中文解析一下,免班竹說我 show script 沒註解..
也可多灌一篇水..hehehe
# 程序名 bash 寫法,等如 PROG=`basename $0`
PROG=${0##*/}

# 將 bash 的內(nèi)建命令作為猜字的源,以數(shù)組形式放入變量 $KEYWORD
KEYWORD=(alias bind builtin cd compgen continue dirs echo eval
        exit false fg for getopts help if kill local popd pushd
        read return set shopt suspend time trap type ulimit unalias
        until wait bg break case command complete
        declare disown enable exec export fc for function hash history
        jobs let logout printf pwd readonly select shift source test
        times true typeset umask unset variables while \: \(\( \[\[ \[)
# 這個變量 $WORD 是由 ${KEYWORD[@]} 隨機生成,
# 分開來看, [(( $RANDOM%${#KEYWORD[@] ))] ,這個
# $RANDOM 會隨機生成一個數(shù)字 0-32768(?) % 是取寞 ,
# ${#KEYWORD[@]} 反回 KEYWORD 數(shù)組字串的個數(shù)總數(shù),
# 如是成為 $KEYWORD 下標(biāo) ,那可以是 WORD=${KEYWORD[0]}
# 也可是 WORD=${KEYWORD[20]} , 是由RANDOM 去選的,
# 不會大過 KEYWORD 字符的總數(shù)

WORD=${KEYWORD[$(($RANDOM%${#KEYWORD[@]}))]}

# 這個隨機生成的字符長度
LENGTH="${#WORD}"

# 再將 $WORD 變成一個數(shù)組,用sed 將字母以空格分開
# 執(zhí)行的結(jié)果以 SPLIT_WORD=( )方法成為數(shù)組
SPLIT_WORD=($(echo $WORD | sed 's/./& /g'))

# 只是以 - 代替那些字母
GUESS=$(echo $WORD | sed 's/./-/g')

# 函數(shù)一個,用來取得輸入
# read -n 1 設(shè)定輸入只讀一個鍵,請看 Bash Manual
function MyGuess {
echo -n 'Guess the command: ' >&2
read -n 1
}

# function, displays information
# 沒什麼,函數(shù)一個
function ShowInfo {
echo "The builtin command contains $LENGTH letters"
echo 'Guess the letter one by one.'
echo "$GUESS"
}
# here document,用來搞搞打招呼
cat<<!
#######################################################

$(echo "Hello $(whoami)", welcome to $(echo $PROG)
It is a little game to guess BASH builtin command
Here we go.

#######################################################

!

ShowInfo
# main loop

for ((i=0 ; i<$LENGTH ; ++i))
do
     MyGuess
# 測試你的輸入是否和SPLIT_WORD 的每個字相同,相同就打印
# Right (綠色) ,不同打印該字母(紅色)
     if [ "$REPLY" != "${SPLIT_WORD[$i]}" ] ; then
           echo
           echo -e "The letter is \033[31m${SPLIT_WORD[$i]}\033[39m"
     else
           echo
           echo -e "\033[32mRight.\033[39m"
     fi
# ANSWER 是空的, 但每一字母由 ${SPLIT_WORD[$i]}
# 會傳回 ANSWER , 我要把猜過了的字母打印,沒猜的還是以
# - 顯示 ,那個 $GUESS(($i + 1)) 會隨 主 loop增加 1
# 等于 ${GUESS:0} ${GUESS:1} ,${GUESS:n}, 這個是 bash 的    #${varffset}

         
           ANSWER="$ANSWER${SPLIT_WORD[$i]}"
           DISPLAY="${ANSWER}${GUESS(($i + 1))}"
# 顯示以 s---- sl--- sle-- 的方式
           echo "$DISPLAY"

done
echo 'Thankyou for playing.'
echo ""
# Display usage
help $(echo $WORD)

手也累了,各位大大,小弟文筆差,有錯見諒

論壇徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亞冠之浦和紅鉆
日期:2015-06-23 19:10:532015亞冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16賽季CBA聯(lián)賽之山東
日期:2016-01-31 18:25:0515-16賽季CBA聯(lián)賽之四川
日期:2016-02-16 16:08:30程序設(shè)計版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
5 [報告]
發(fā)表于 2005-09-19 16:24 |只看該作者

人氣少了,拿個以前的練習(xí)灌灌水吧。

支持原創(chuàng)

論壇徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亞冠之浦和紅鉆
日期:2015-06-23 19:10:532015亞冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16賽季CBA聯(lián)賽之山東
日期:2016-01-31 18:25:0515-16賽季CBA聯(lián)賽之四川
日期:2016-02-16 16:08:30程序設(shè)計版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
6 [報告]
發(fā)表于 2005-09-19 16:27 |只看該作者

人氣少了,拿個以前的練習(xí)灌灌水吧。

既然是bash
GUESS=$(echo $WORD | sed 's/./-/g') 何不直接用bash?
GUESS=${$WORD//?/-}

論壇徽章:
0
7 [報告]
發(fā)表于 2005-09-19 16:31 |只看該作者

人氣少了,拿個以前的練習(xí)灌灌水吧。

哈哈,那時沒想到,你改得好,!! 班竹高人!! 謝謝

論壇徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亞冠之浦和紅鉆
日期:2015-06-23 19:10:532015亞冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16賽季CBA聯(lián)賽之山東
日期:2016-01-31 18:25:0515-16賽季CBA聯(lián)賽之四川
日期:2016-02-16 16:08:30程序設(shè)計版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
8 [報告]
發(fā)表于 2005-09-19 16:34 |只看該作者

人氣少了,拿個以前的練習(xí)灌灌水吧。

GUESS=${WORD//?/-}
寫錯了

論壇徽章:
0
9 [報告]
發(fā)表于 2005-09-19 16:39 |只看該作者

人氣少了,拿個以前的練習(xí)灌灌水吧。

哈哈,我沒試,看來沒問題便趕快拍馬p , 哈哈哈 .....

論壇徽章:
0
10 [報告]
發(fā)表于 2005-09-19 18:05 |只看該作者

人氣少了,拿個以前的練習(xí)灌灌水吧。

看的我有點迷糊了,,

以我這水平看注釋還不夠詳細,,哈哈哈哈
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP