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

  免費注冊 查看新帖 |

Chinaunix

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

請教“aquino" 等各位老師:此程序如何寫 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2003-05-04 14:17 |只看該作者 |倒序瀏覽
一個文本文件userpasswd的內(nèi)容:
wq   111111
za    987678
qd    6588
我能否用UNIX的SHELL編寫一個程序,用戶輸入的用戶名(當(dāng)然不是/etc/passwd 中的用戶)和密碼如果和此文本中的用戶名和密碼相同,就執(zhí)行另一個SHELL程序,如果不相同則退出程序,用戶并能改正自己的密碼,當(dāng)然程序有產(chǎn)生新用戶和密碼這個功能更好,不知如何編寫。
“aquino”等各位老師請指教,謝謝。!

論壇徽章:
0
2 [報告]
發(fā)表于 2003-05-04 16:25 |只看該作者

請教“aquino" 等各位老師:此程序如何寫

寫得比較簡陋,高手還請指教一二

“用戶+密碼”文件/tmp/pass:

  1. wq 111111
  2. za 987678
  3. qd 6588
復(fù)制代碼


腳本yz.sh:

  1. #!/bin/sh

  2. echo -n "User name:"
  3. read USERNAME

  4. stty -echo
  5. echo -n "Password:"
  6. read PASSWORD
  7. stty echo
  8. echo

  9. REALPASS=`sed -n /$USERNAME/p /tmp/pass | cut -d' ' -f2`

  10. awk '{print $1}' /tmp/pass | egrep -q $USERNAME   #某些時候egrep可用grep代替

  11. if [ $? -ne 0 ]; then
  12.         echo $USERNAME "DOES NOT EXIST!"
  13. elif [ $PASSWORD = $REALPASS ]; then
  14.         echo "這里做你想做的事"
  15. else
  16.         echo "BAD PASSWORD!"
  17. fi
復(fù)制代碼



其實稍懂一點編程的人一看腳本內(nèi)容,再一看/tmp/pass就什么都知道了,所以沒有實在意義,這種工作也不是SHELL的強(qiáng)項,應(yīng)該考慮用C來完成。

論壇徽章:
0
3 [報告]
發(fā)表于 2003-05-04 21:35 |只看該作者

請教“aquino" 等各位老師:此程序如何寫

sd

論壇徽章:
0
4 [報告]
發(fā)表于 2003-05-04 22:12 |只看該作者

請教“aquino" 等各位老師:此程序如何寫

cut 的 delimiter 不就是空格么。
你用的什么系統(tǒng),我在LINUX下是可以的。

論壇徽章:
0
5 [報告]
發(fā)表于 2003-05-04 22:20 |只看該作者

請教“aquino" 等各位老師:此程序如何寫

ANSI-Escape-Sequence

Move to Position


  1. ESC[row;colH
復(fù)制代碼


Move the cursor to the (col, row) position. Note that the row comes before column; that is, y comes before x. Either col or row can be omitted. Row and column both start with "1," not zero. (1, 1) corresponds to the top-left corner of the screen.

論壇徽章:
0
6 [報告]
發(fā)表于 2003-05-04 23:49 |只看該作者

請教“aquino" 等各位老師:此程序如何寫

程序已通過,謝謝。。≡僬埥桃幌,用戶怎么能夠修改自己的密碼,并保存在/tmp/passwd 中,在/etc/passwd中增加新用戶(當(dāng)然用 vi 編輯除外),單獨寫一個小的shell程序嗎?請指教,謝謝!。。。
此程序還存在如下問題:
1。比如:用戶名稱為:wqlp,密碼:111111,我輸入用戶名稱:w,密碼:111111,同樣可以通過用戶驗證,如果用戶名稱我輸入“wqlp"中的任何一個字母,只要密碼輸入正確,用戶驗證都可以通過,這樣好象有點問題,但我輸入用戶名稱:w,對應(yīng)的密碼輸錯了,那么用戶驗證則不能通過。
2。如果用戶名和密碼我都不輸,則屏幕提示:
sed:First RE may not be null
egrep:no pattern given
egrep [-c|-l|-q] [bhinsvx] [-e pattern_list] [-f pattern_file] [pattern_list][file...],
請多多指教,謝謝。。。。。。。。。
不好意識,在多問一個問題:
echo "^[[11;38H",這是一個光標(biāo)定位,即光標(biāo)停在11行,38列,但
符號"^"不是”SHILT+^“鍵,不知怎么輸,此符號才起作用。我是”unix5.0.5"
操作系統(tǒng)。謝謝!!

論壇徽章:
0
7 [報告]
發(fā)表于 2003-05-05 10:27 |只看該作者

請教“aquino" 等各位老師:此程序如何寫

好難。

第一個問題比較好解決,在sed的pattern  $USERNAME的兩邊加一個^和一個$就差不多了:
/^${USERNAME}$/

ansi esc sequence中的^[ 是先按ctrl-v, 再打ESC出來的, 后邊再接一個[

至于改密碼和加用戶,可以給腳本加參數(shù),用case語句來選擇執(zhí)行,我的水平有限,自己研究研究吧

論壇徽章:
0
8 [報告]
發(fā)表于 2003-05-06 22:14 |只看該作者

請教“aquino" 等各位老師:此程序如何寫

REALPASS=`sed -n /^${USERNAME}$/ /tmp/pass | cut -d' ' -f2`
有問題,屏幕提示出錯,

論壇徽章:
0
9 [報告]
發(fā)表于 2003-05-11 21:25 |只看該作者

請教“aquino" 等各位老師:此程序如何寫

請教!

論壇徽章:
0
10 [報告]
發(fā)表于 2003-05-13 05:58 |只看該作者

請教“aquino" 等各位老師:此程序如何寫

...

用 AWK 取第二域
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(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