2009年10月22日 星期四

[2009-10-22-4] Shell scripts - 6/49大樂透

#!/bin/bash
#file name: ray.sh
#2009-10-09, RayZ, demo cases/notes using bash

#第一行可以讓這個file變成執行檔,方法是
#chomd 770 ray.sh
#./ray.sh 
# or 是一般文字檔就必須sh ray.sh

#--------------以下是手動在 bash 下執行

#0 若發生奇怪的錯誤可能是bash 被換成 dash
#$    sudo dpkg-reconfigure dash  (answer no)
       # or sudo rm /bin/sh   sudo ln -s /bin/bash /bin/sh
       # see more information: wiki.ubuntu.com/DashAsBinSh

#1 變數
#$   ws=~/Desktop/test_shell_script
#$   cd $ws

#2 化名/取消化名
#$   alias lm='ls -al |more'
#$   lm
#$   unalias lm
#$   alias cls='clear'
#$   alias dir='ls -l'
#$   alias gogogo='sudo apt-get install'
#$   alias raywork='~/Desktop/test_shell_script'

#3 直接看
#$   cat ray.sh

#4 指令搜尋的順序
#$   type -a ls

#5 壓縮/解壓縮, 打包
#$   bzip2 -k-z ray.sh   #保留原檔並壓成ray.sh.bz2
#$   bzip2 -k-d ray.sh.bz2    #保留原檔並解壓成ray.sh
#$   unzip NERD_tree.zip  #解壓
#$   unzip -l NERD_tree.zip #看壓縮檔案內容
#$   unzip -c NERD_tree.zip #看壓縮說明檔
#$   tar -jcv -f filename.tar.bz2  dirname  #壓縮打包
#$   tar -jtv -f filename.tar.bz2  #查詢內容物
#$   tar -jxv -f filename.tar.bz2  -C  dirname   #解壓到dirname

#6 斷字元的改變
#$   dos2unix -k ray_dos.sh  # ^M$ 改成$
#$   unix2dos -k ray_unix.sh # $ 改成 ^M$
#$   dos2unix -kn ray_dos.sh ray_unix.sh  #保留原檔,新檔為ray_unix.sh

#7 歷史記錄
#$   history
#$   !22   #選第22個

#8 用source 來執行檔案/腳本,就可以執行於父程序中
#$   source ray.env.sh


#9 找檔案,建議是先換成root來找. 
#$   find / -name "ray.sh" | less
#$   fine / -type d -name ".vim" | less # 找目錄
#$   su

#10 改變user登入
#    su

#11 改變檔案權限
#    chmod 770 ray.sh   


#--------------以下是bash file
#需要在 bash 下執行
#ex: vadmin@vadmin:~$ sh ray.sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
#把自定變數轉成環境變數
export PATH    

 
s1='demo case No. (1~10)'
echo -e "\n\n1) 在bash中輸入名字並印出全名 \
         \n2) 6/49大樂透 \
         \nq/Q) Exit \
         \n"
read -p "Select $s1: " democase


function exitfun(){
if [ "$democase" == "q" ] || [ "$democase" == "Q" ]; then
        echo -e "\nExit OK"
        exit 0
else
        echo " Error!! choose $s1 "
fi
}

case $democase in
     "1")
 #在bash中輸入名字並印出全名
 read -p "Please input your first name:  " firstname
 read -p "Please input your last name:   " lastname
 echo -e "\nYour full name is: $firstname $lastname "
 ;;
     "2")
        #RANDOM: 0~32767
        #6/49大樂透
        i=0
        while [ "$i" != "7" ]
        do
          i=$(($i+1))
          declare -i nu=$RANDOM*49/32768+1
          echo -n "$nu "          
        done                     
 ;;     
     *)
        exitfun;        
 ;;
esac

sh ray.sh


[參考]
[1] 鳥哥 - 學習Shell Scripts
[2] 鳥哥 - 如何改變檔案屬性與權限

沒有留言: