RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [其他] [求助]朋友的LINUX作業...orz   字型大小:||| 
oldk999
鐵驢友〔高級〕
等級: 6等級: 6


今日心情

 . 積分: 79
 . 文章: 138
 . 收花: 498 支
 . 送花: 195 支
 . 比例: 0.39
 . 在線: 2296 小時
 . 瀏覽: 21561 頁
 . 註冊: 7212
 . 失蹤: 360
 . 拉普達
#1 : 2013-5-2 11:42 PM     只看本作者 引言回覆

小弟的朋友最近向小弟求助...無奈...小弟從沒摸過LINUX..這幾天自行摸索下只用Shell Script寫出了些許答案(藍色部份)也不知道對不對 , 所以只好上來請求版上各位大大們的協助小弟感激不盡啊

看了 watchme 大大的第2題答案 , 小弟試著寫了第14題 , 如今只剩第15題了 , 希望有大大能相助啊~小弟感激不盡~
在此也感謝 watchme 大大的大力相助

14.        寫一程式檢查某一檔案(/home/tsnien/testfile)(1)是否存在,(2) 如不存在,則建立一個該名稱的空檔案(touch),(3) 如存在的話,判斷它是否為檔案,如是目錄的話,則刪除該目錄,再產生檔案。

if [ -e /home/tsnien/testfile ]; then  

   if [ -d /home/tsnien/testfile ]; then  

      rm -r /home/tsnien/testfile  
      touch  /home/tsnien/testfile  

   fi  

else  
touch  /home/tsnien/testfile  

fi  



15.        請製作ㄧ套帳戶管理系統,至少具有下列功能: (檔名:user_menu,選單功能)
(1) 增加/刪除某一個帳戶(包含變更或刪除密碼,並可選擇群組、Shell 環境)。
(2) 增加/刪除多位帳戶(包含刪除或變更密碼)。
(3) 可查詢某一帳戶的相關訊息,如 Home directory、Shell、以及其他資料。
(4) 可針對帳戶密碼使用週期之設定。

新建使用者具有下列特性:
(1)        每位使用者登入系統後,在終端機螢幕上會顯示單位名稱,以及歡迎詞(格式自行設計)。
(2)        接著,再顯示系統管理者的公告事項(管理者的佈告欄,內容格式自行設計)。
利用 Shell Script 編寫具有選單功能的程式。所增加入帳戶,登入系統後會顯示歡迎詞、帳戶名稱,登出時會顯示歡迎再來(格式自行設計)。

[oldk999 在  2013-5-4 01:18 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
watchme
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
無我

十週年紀念徽章(五級)  

今日心情

 . 積分: 926
 . 文章: 2172
 . 收花: 8002 支
 . 送花: 3799 支
 . 比例: 0.47
 . 在線: 3480 小時
 . 瀏覽: 31072 頁
 . 註冊: 7213
 . 失蹤: 0
 . TWed2k-DVD幫
#2 : 2013-5-3 09:46 AM     只看本作者 引言回覆

2.
if [ $# = 0 ]; then
        read -p "Source file name? " fn1
        read -p "Destination file name? " fn2
elif [ $# = 1 ]; then
        fn1=$1
        read -p "Destination file name? " fn2
else
        fn1=$1
        fn2=$2
fi

if [ $fn1 = $fn2 ]; then
        echo "nothing to do!"
        exit
fi

if [ ! -f $fn1 ]; then
        echo "file [" $fn1 "] not exist !"
        exit
fi

if [ -f $fn2 ]; then
        echo "file [" $fn2 "] exist"
        read -p "overwrite (Y/n)? " confirm
        if [ "$confirm" == "n" -o "$confirm" == "N" ]; then
                echo "skip cpoy!"
                exit
        fi
fi

cp -f $fn1 $fn2
echo "copy done!"

[watchme 在  2013-5-3 10:11 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
watchme
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
無我

十週年紀念徽章(五級)  

今日心情

 . 積分: 926
 . 文章: 2172
 . 收花: 8002 支
 . 送花: 3799 支
 . 比例: 0.47
 . 在線: 3480 小時
 . 瀏覽: 31072 頁
 . 註冊: 7213
 . 失蹤: 0
 . TWed2k-DVD幫
#3 : 2013-5-3 11:02 AM     只看本作者 引言回覆

4.
只目前目錄
echo "$(find -maxdepth 1 -type f | wc -l) files"

不限目錄層次(所有子目錄都要算)
echo "$(find -type f | wc -l) files"



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
watchme
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
無我

十週年紀念徽章(五級)  

今日心情

 . 積分: 926
 . 文章: 2172
 . 收花: 8002 支
 . 送花: 3799 支
 . 比例: 0.47
 . 在線: 3480 小時
 . 瀏覽: 31072 頁
 . 註冊: 7213
 . 失蹤: 0
 . TWed2k-DVD幫
#4 : 2013-5-3 11:09 AM     只看本作者 引言回覆

5.
echo $(who | awk '{print $1}' | sort -u)



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
watchme
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
無我

十週年紀念徽章(五級)  

今日心情

 . 積分: 926
 . 文章: 2172
 . 收花: 8002 支
 . 送花: 3799 支
 . 比例: 0.47
 . 在線: 3480 小時
 . 瀏覽: 31072 頁
 . 註冊: 7213
 . 失蹤: 0
 . TWed2k-DVD幫
#5 : 2013-5-3 01:29 PM     只看本作者 引言回覆

6.
#!/bin/sh

namelist=""
oldIFS=$IFS
IFS=$'\n'
for name in $(cat names)
do
          if [ "" = "$namelist" ]; then
                namelist=$name
        else
                    namelist=$namelist:$name
        fi
done
IFS=$oldIFS
echo $namelist



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
watchme
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
無我

十週年紀念徽章(五級)  

今日心情

 . 積分: 926
 . 文章: 2172
 . 收花: 8002 支
 . 送花: 3799 支
 . 比例: 0.47
 . 在線: 3480 小時
 . 瀏覽: 31072 頁
 . 註冊: 7213
 . 失蹤: 0
 . TWed2k-DVD幫
#6 : 2013-5-3 02:14 PM     只看本作者 引言回覆

7.
#!/bin/sh

if [ $# = 1 ]; then
        who | grep "^$1"
else
        echo "syntax error"
fi



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
watchme
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
無我

十週年紀念徽章(五級)  

今日心情

 . 積分: 926
 . 文章: 2172
 . 收花: 8002 支
 . 送花: 3799 支
 . 比例: 0.47
 . 在線: 3480 小時
 . 瀏覽: 31072 頁
 . 註冊: 7213
 . 失蹤: 0
 . TWed2k-DVD幫
#7 : 2013-5-3 02:30 PM     只看本作者 引言回覆

8.
#!/bin/sh

if [ $# = 1 ]; then
        /bin/sh -c "echo ~$1"
else
        echo "syntax error"
fi



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
watchme
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
無我

十週年紀念徽章(五級)  

今日心情

 . 積分: 926
 . 文章: 2172
 . 收花: 8002 支
 . 送花: 3799 支
 . 比例: 0.47
 . 在線: 3480 小時
 . 瀏覽: 31072 頁
 . 註冊: 7213
 . 失蹤: 0
 . TWed2k-DVD幫
#8 : 2013-5-3 02:40 PM     只看本作者 引言回覆

9.
#!/bin/sh

if [ $# = 2 ]; then
        echo "$1$2"
else
        echo "syntax error"
fi


#########################################################33
10.
#!/bin/sh

if [ $# = 2 ]; then
        cmd="echo $1 | sed 's/$2//g'"
        /bin/sh -c "$cmd"
else
        echo "syntax error"
fi



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
oldk999
鐵驢友〔高級〕
等級: 6等級: 6


今日心情

 . 積分: 79
 . 文章: 138
 . 收花: 498 支
 . 送花: 195 支
 . 比例: 0.39
 . 在線: 2296 小時
 . 瀏覽: 21561 頁
 . 註冊: 7212
 . 失蹤: 360
 . 拉普達
#9 : 2013-5-3 09:52 PM     只看本作者 引言回覆

太感謝大大了~


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
watchme
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
無我

十週年紀念徽章(五級)  

今日心情

 . 積分: 926
 . 文章: 2172
 . 收花: 8002 支
 . 送花: 3799 支
 . 比例: 0.47
 . 在線: 3480 小時
 . 瀏覽: 31072 頁
 . 註冊: 7213
 . 失蹤: 0
 . TWed2k-DVD幫
#10 : 2013-5-6 10:58 AM     只看本作者 引言回覆

14 題的 rm 可以多個參數變成 rm -rf xxx 確保資料夾被刪除

15 是整合前面的所有東西,比較龐大,恐怕沒辦法在編譯程式的空檔寫出來,不知道目前卡在哪裡?

主選單可以用迴圈跑 read 等使用者回應,各對話內容也是

新增使用者參考 useradd --help
刪除使用者參考 userdel --help
密碼相關參考 passwd --help
登入歡迎詞、公告(message of the day)放在 /etc/motd
登出顯示:我沒用過,可能要自己找看看!



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
oldk999
鐵驢友〔高級〕
等級: 6等級: 6


今日心情

 . 積分: 79
 . 文章: 138
 . 收花: 498 支
 . 送花: 195 支
 . 比例: 0.39
 . 在線: 2296 小時
 . 瀏覽: 21561 頁
 . 註冊: 7212
 . 失蹤: 360
 . 拉普達
#11 : 2013-5-6 10:24 PM     只看本作者 引言回覆

目前卡在不知道要怎麼樣把函式及功能填進框架中

#!/bin/bash

# Variable

QUERY=/usr/bin/finger
AddUSER=

# Function

_Add(){
    echo "Add $1 to Linux"
}

_Del(){
    echo "Delete $1 from Linux"
}



# Main
while true;do

clear
echo ""
echo "+------------Menu--------------+"
echo "+ 1) Add    Account            +"
echo "+------------------------------+"
echo "+ 2) Remove Account            +"
echo "+------------------------------+"
echo "+ 3) Query  Account            +"
echo "+------------------------------+"
echo "+ 4) Quit                      +"
echo "+------------------------------+"
echo ""

read -p "Enter number : " space
echo ""

case $space in
    1)
    # Add Account
        echo "Add Account"
        echo ""
        read -p "Enter user name : " username
        
        # handle single or multiple user
        for user in ${username}
        do
          _Add ${user}  
        done
        
        ;;
    2)
    # Delete Account
        echo "Delete Account"
        echo ""
        read -p "Enter user name : " username
        
        # handle single or multiple user
        for user in ${username}
        do
          _Del ${user}  
        done
        ;;   
    3)
    # Query Account
        echo "== Query Account =="
        echo ""
        read -p "Enter user name : " username
        
        $QUERY $username
        ;;
    4)
    # Quit
        echo "Good Byte !!"
        break
        ;;
    *)
    # Invalid
        echo "Invalid number !!"
        ;;
esac

echo ""
read -p "Enter any key to continue..... "
done



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
oldk999
鐵驢友〔高級〕
等級: 6等級: 6


今日心情

 . 積分: 79
 . 文章: 138
 . 收花: 498 支
 . 送花: 195 支
 . 比例: 0.39
 . 在線: 2296 小時
 . 瀏覽: 21561 頁
 . 註冊: 7212
 . 失蹤: 360
 . 拉普達
#12 : 2013-5-17 12:48 AM     只看本作者 引言回覆

已處理完畢~感謝watchme大大的鼎力相助~


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-3-29 05:10 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.026458 second(s), 6 queries , Qzip disabled