幾個shell小程式

2021-08-21 05:11:00 字數 2166 閱讀 2013

說明

以下外殼指令碼,完成後全部拷貝至系統的公共可執行程式目錄,使得可以在任意目錄下執行

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...