1. 程式人生 > >shell指令碼編寫小程式

shell指令碼編寫小程式

  1. 求1-100的加法,並輸出1+2+3+4+5+6+7+…+100?
#!/bin/bash
sum=1
str='1'
i=2
for (( i; i<=100; i++))
do
    str=$str'+'$i
    let sum+=i
done
echo $str=$sum

因為‘+’不好處理,所以從2開始。
這裡寫圖片描述

2.輸入n個數字,判斷最大最小值

#!/bin/bash
function myfun()
{
    max=$1
    min=$1
    i=0
    for i in [email protected]
    do
        if [ $max
-lt $i ] then let max=$i fi if [ $min -gt $i ] then let min=$i fi done } myfun [email protected] echo "max=$max, min=$min"

$@:命令列引數列表
$#:命令列引數個數
這裡寫圖片描述
shell指令碼的函式呼叫只需要函式名,函式名後面的引數可以被函式當做命令列引數,使用$@,$#,$1,$2…$9讀取。

3.shell指令碼編寫進度條。

#!/bin/bash
i=0
flag=('|' '/' '-' '\')
arr=''
for ((i; i<=100; i++))
do
    printf "[%-100s] [%d%%] %s\r" "$arr" "$i" "${flag[i%4]}"
    arr=$arr'#'
    usleep 100000
done
printf "\n"

這裡寫圖片描述
進度條分為三部分,‘#’部分,百分比顯示,旋轉的字元。
‘#’部分,需要提前預留好足夠的位置,通過sleep控制時間讓#逐漸顯示,同時百分比也要改變。

4.計算平均值,並控制結果的精度。

#!/bin/bash
function avg()
{
    i=1
max=$1 min=$1 sum=0 for i in [email protected] do let sum+=$i if [ $max -lt $i ] then max=$i fi if [ $min -gt $i ] then min=$i fi done echo "max=$max" echo "min=$min" echo "ibase=10;scale=2;$sum/$#" | bc } avg [email protected]

命令:ibase=10,表示採用十進位制
scale=2,表示精度為2
bc,Linux下的計算器
這裡寫圖片描述

5.讀取檔案內容並對字串進行分割與拼接。

#!/bin/bash
while read line
do
    part1=$(echo $line | cut -c 1-3)
    part2=$(echo $line | cut -b 4-6 | tr '[a-z]' '[A-Z]')
    part3=$(echo $line | cut -c 7-9)
    echo $part3$part2$part1
done < file

cut -c:按字元分割
cut -b:按位元組分割
tr:將小寫的[a-z]轉化成大寫的[A-Z]
拼接:$part3$part2$part1
這裡寫圖片描述

相關推薦

shell指令碼編寫程式

求1-100的加法,並輸出1+2+3+4+5+6+7+…+100? #!/bin/bash sum=1 str='1' i=2 for (( i; i<=100; i++)) do

shell指令碼編寫改密功能

#! /bin/bash read -p "請輸入修改的使用者名稱" user num=` cat /etc/passwd | cut -f1 -d':' |grep -w $user -c ` #查詢user是否在/etc/passwd ,並計算個數 #grep -q "$usern

在Spark Shell編寫WordCount程式

Spark Shell是一個互動式的命令列,裡面可以寫Spark程式(Scala語言),也是一個客戶端,用於提交Spark程式 1.啟動Spark Shell bin/spark-shell  上邊是沒有指定Master地址的啟動方式,啟動後用的是spark的local模

Shell指令碼編寫可能遇到的問題

      在編寫shell指令碼過程中,由於格式和語法問題,可能導致執行指令碼不成功。 梳理一些可能的原因如下: 1. No such file or directory沒有那個檔案或目錄問題分析: 1、將windows 下編寫好的SHELL檔案,傳到linu

10 個實戰及面試常用 Shell 指令碼編寫

注意事項 1)開頭加直譯器:#!/bin/bash 2)語法縮排,使用四個空格;多加註釋說明。 3)命名建議規則:變數名大寫、區域性變數小寫,函式名小寫,名字體現出實際作用。 4)預設變數是全域性的,在函式中變數local指定為區域性變數,避免汙染其他作用域。 5)有兩個命令能幫助我除錯指令碼:set -e

shell指令碼編寫流程!!!

ubuntu終端:ctrl +art + T  cd /home/thomas 到thomas目錄下 一、vi bigdata.sh 開啟vim編輯器 二、i 輸入內容 #!/bin/bash echo  Hadoop Hive Hbase

Shell 程式設計 shell 指令碼編寫

原創轉載自 自海牛部落-青牛,http://hainiubl.com/topics/173 1 Vim 編輯器 1.1 vim 常用命令 1.2 針對程式設計師的vim 配置 配置方式: /etc/vimrc 全域性配置 ~/.vimrc 使用者級配置 ~/.vimin

Linux入門學習筆記(五)--Shell指令碼編寫

Shell指令碼的HelloWorld:     cd /自己的路徑下     vi helloworld.sh 進入之後,預設是命令狀態,按i進入編輯模式     內容:         #! /bin/bash         echo "Hello World!"   

一個很牛的 linux shell指令碼編寫的俄羅斯方塊遊戲例項程式碼,非常牛逼

可以將下面程式碼直接儲存為sh檔案。 #!/bin/bash   # Tetris Game # 10.21.2003 xhchen< [email][email protected][/email]>   #APP declaration

8個實戰及常用Shell指令碼編寫

注意事項: 1).開頭加直譯器:#!/bin/bash 2).語法縮排,使用四個空格,多加註釋說明 3).命名建議規範:變數名大寫,區域性變數小寫,函式名小寫 4).預設變數是全域性的,函式中使用local指定區域性變數 5).除錯指令碼兩個命令:set -e遇

Linux Shell指令碼編寫規範、例子

一、規範 Linux的Shell種類眾多,常見的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、She

shell指令碼編寫注意

這八個建議,來源於鍵者幾年來編寫 shell 指令碼的一些經驗和教訓。事實上開始寫的時候還不止這幾條,後來思索再三,去掉幾條無關痛癢的,最後剩下八條。毫不誇張地說,每條都是精挑細選的,雖然有幾點算是老生常談了。 1. 指定bash shell 指令碼的第一行,#!之後應該是什麼?如果拿

關於python指令碼完整打包釋出(包括外部傳參的批處理指令碼shell指令碼編寫

在python處理簡單問題的過程中常常需要對Python指令碼打包成exe的可執行程式。並且要可移植。而最常用的方法則是用pyinstaller在dos視窗下進行打包。因為常常需要對exe檔案進行傳送外部引數由此路徑會發生錯誤。此時最為簡單的方法則是用文字編輯器開啟,修改編碼方式。詳細過程如

Shell指令碼編寫常用——————持續更新

Linux指令碼 source命令與點命令 單純執行shell指令碼./a.sh,  並不能把指令碼中定義的變數匯入到父shell中, 必須用source的方式執行才可以 $0 $? $#... h

mongodb資料庫備份和利用shell指令碼編寫

1、指令備份 MongoDB提供了備份工具,mongodump.exe,在bin目錄下,其用法如下: mongodump.exe-hlocalhost-ddatabase_name -u use

IC數字前端設計開發18 (用shell指令碼編寫區別兩個資料夾內檔案的不同)

#!/bin/bash mkdir tmp basedir="./tmp" workdir="./" #這是定義兩個目錄,按照你的說法,這兩個目錄下檔名應該都是相同的 dir1="txt_test0" dir2="txt_test1" #這是用來儲存查詢di

shell指令碼執行Java程式

#!/bin/sh export APP_HOME=/home/lyh/eclipse_workspace/JenaReadSubstance export APP_SRC=$APP_HOME/src/jena/examples/rdf export APP_CLASSPATH=$APP_HOME/bin/j

複製命令的Shell指令碼編寫示例

編寫指令碼/root/bin/copycmd.sh: (1) 提示使用者輸入一個可執行命令名稱 (2) 獲取此命令所依賴到的所有庫檔案列表 (3) 複製命令至某目標目錄(例如/mnt/sysroo

shell 指令碼啟動jar程式

Linux下啟動jar包程式,直接上步驟: 1、首先,maven專案打成一個jar包,同時使用dependency:copy-dependencies命令匯出依賴的jar包,把匯出的包和專案jar包都放進lib資料夾裡 2、編寫shell指令碼: #!/bin/bash

linux下的shell指令碼編寫

        下面我參考網上寫的較好的文章,加上自己的一點理解修改。僅供看家參考。         Shell是一種具備特殊功能的程式,它是結語使用者和UNIX/Linux作業系統核心程式(kernel)之間的一個介面。是為了遮蔽核心的複雜性,也為了保護核心以免使用者誤