說明
以下外殼指令碼,完成後全部拷貝至系統的公共可執行程式目錄,使得可以在任意目錄下執行
sudo cp hello calc mcp fileinfo guessnum /bin/
helloshell(/ bin中/你好)
#!/bin/bash
#↑宣告shell直譯器位置
word="hello shell"
echo "hello shell!"
數學計算(/ bin中/計算值)
#!/bin/bash
# calc --add 3 4 執行結果為7
#第乙個引數為--add時,做加法
if [[ $1 = "--add" ]];then
echo --add
echo $(($2+$3))
#第乙個引數為--sub時,做減法
elif [[ $1 = "--sub" ]];then
echo --sub
echo $(($2-$3))
#第乙個引數為--mul時,做乘法
elif [[ $1 = "--mul" ]];then
echo --mul
echo $(($2*$3))
#第乙個引數為--div時,做除法
elif [[ $1 = "--div" ]];then
echo --div
echo $(($2/$3))
#第乙個引數為--div時,做求餘
elif [[ $1 = "--mod" ]];then
echo --mod
echo $(($2%$3))
#第乙個引數為其它時,提示錯誤
else
echo $1
echo **** off,不支援的操作符
fi
顯示檔案資訊(/ bin中/ fileinfo的)
#!/bin/bash
#fileinfo ~/hello 顯示該檔案的許可權和內容
fileinfo()
# 呼叫函式,傳入檔案位置引數
fileinfo $1
自定義的檔案拷貝(/ bin中/ mcp)
#!/bin/bash
#使用者通過mcp srcfile dstfile實現拷貝
#通過mcp -a srcfile dstfile實現追加
#拷貝完成後詢問使用者是否立即檢視
docp()
#呼叫函式,傳入引數
docp $1 $2 $3
猜數字小遊戲(/ bin中/ guessnum)
#!/bin/bash
#生成隨機數,此處的rand命令需要安裝一下
answer=`rand --max 1000`
#answer=$(cat /dev/urandom | head -n 10 | cksum | awk -f ' ' '')
#answer=$(($answer%1000))
echo $answer
while true
do #提示使用者輸入
echo -n "please enter a num between 0~1000:"
read guess
#看答案
if [[ $guess = "drop it" ]];then
echo "the answer is:$answer"
break
fi#對比
if [[ $guess -eq $answer ]];then
echo "bingo!the answer is:$answer"
break
elif [[ $guess -gt $answer ]];then
echo "too big!"
else
echo "too small!"
fidone
echo "game over!"
幾個shell小技巧
1.expr 命令 由於bash 是功能有限的直譯器,所以自身並沒有支援太多的算術運算,一切都是字串。所以如果涉及到算術運算,需要借助其他的工具,比如bc 功能比較強大的小工具 expr 和 算術擴充套件.expr 支援幾個常見的算術運算 取模 expr還支援常見的關係運算,比如 題外話 如果要想計...
幾個小程式
幾個c語言程式 一 如何 交換整形變數的內容?1.給定兩個整形變數的值,將兩個值的內容進行交換。includeint main 不允許建立臨時變數,交換兩個數的內容 includeint main 二 求max值 3.求10 個整數中最大值。include int main int max num ...
shell併發小程式
之前一直只懂的併發,但不懂的如何控制線程數,今日一試,果然有所啟發。bi bash exec 6 和exec 1000 是關閉fifo的意思,我們生成做繫結時 可以用 exec 6 fifo 來實現,但關閉時必須分開來寫 讀的繫結,標識寫的繫結 則標識 對檔案描述符6的所有操作等同於 對管道檔案fi...