自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳細(xì)介紹Linux shell腳本基礎(chǔ)學(xué)習(xí)(七)

系統(tǒng) Linux
Linux shell腳本基礎(chǔ)的學(xué)習(xí)理論知識已經(jīng)講完了,后面是兩個具體的實例,這里先說第一個關(guān)于二進制何時禁止之間的轉(zhuǎn)換。

Linux shell腳本基礎(chǔ)學(xué)習(xí)這部分如果只看前面間的理論部分雖然有一些例子,但是還不夠系統(tǒng),這里將以具體實例給大家展現(xiàn)Linux shell腳本編程,以幫助大家完善Linux shell基礎(chǔ)的學(xué)習(xí)和提高。

第2部分 實例

現(xiàn)在我們來討論編寫一個腳本的一般步驟。任何優(yōu)秀的腳本都應(yīng)該具有幫助和輸入?yún)?shù)。并且寫一個偽腳本(framework.sh),該腳本包含了大多數(shù)腳本都需要的框架結(jié)構(gòu),是一個非常不錯的主意。這時候,在寫一個新的腳本時我們只需要執(zhí)行一下copy命令:

cp framework.sh myscript

然后再插入自己的函數(shù)。

讓我們再看個例子:

二進制到十進制的轉(zhuǎn)換

腳本 b2d 將二進制數(shù) (比如 1101) 轉(zhuǎn)換為相應(yīng)的十進制數(shù)。這也是一個用expr命令進行數(shù)學(xué)運算的例子:

#!/bin/sh

# vim: set sw=4 ts=4 et:

help()

{

cat <

b2h -- convert binary to decimal

USAGE: b2h [-h] binarynum

OPTIONS: -h help text

EXAMPLE: b2h 111010

will return 58

HELP

exit 0

}

error()

{

# print an error and exit

echo "$1"

exit 1

}

lastchar()

{

# return the last character of a string in $rval

if [ -z "$1" ]; then

# empty string

rval=""

return

fi

# wc puts some space behind the output this is why we need sed:

numofchar=`echo -n "$1" | wc -c | sed 's/ //g' `

# now cut out the last char

rval=`echo -n "$1" | cut -b $numofchar`

}

chop()

{

# remove the last character in string and return it in $rval

if [ -z "$1" ]; then

# empty string

rval=""

return

fi

# wc puts some space behind the output this is why we need sed:

numofchar=`echo -n "$1" | wc -c | sed 's/ //g' `

if [ "$numofchar" = "1" ]; then

# only one char in string

rval=""

return

fi

numofcharminus1=`expr $numofchar "-" 1`

# now cut all but the last char:

rval=`echo -n "$1" | cut -b 0-${numofcharminus1}`

}

while [ -n "$1" ]; do

case $1 in

-h) help;shift 1;; # function help is called

--) shift;break;; # end of options

-*) error "error: no such option $1. -h for help";;

*) break;;

esac

done

# The main program

sum=0

weight=1

# one arg must be given:

[ -z "$1" ] && help

binnum="$1"

binnumorig="$1"

while [ -n "$binnum" ]; do

lastchar "$binnum"

if [ "$rval" = "1" ]; then

sum=`expr "$weight" "+" "$sum"`

fi

# remove the last position in $binnum

chop "$binnum"

binnum="$rval"

weight=`expr "$weight" "*" 2`

done

echo "binary $binnumorig is decimal $sum"

該腳本使用的算法是利用十進制和二進制數(shù)權(quán)值 (1,2,4,8,16,..),比如二進制"10"可以這樣轉(zhuǎn)換成十進制:

0 * 1 + 1 * 2 = 2

為了得到單個的二進制數(shù)我們是用了lastchar 函數(shù)。該函數(shù)使用wc –c計算字符個數(shù),然后使用cut命令取出末尾一個字符。Chop函數(shù)的功能則是移除最后一個字符。

這個Linux shell腳本實例幫我們完成了轉(zhuǎn)換,下一次我們將舉例一個文件循環(huán)程序。

【編輯推薦】

  1. 詳細(xì)介紹Linux shell腳本基礎(chǔ)學(xué)習(xí)(一)
  2. 詳細(xì)介紹Linux shell腳本基礎(chǔ)學(xué)習(xí)(六)
  3. Linux系統(tǒng)安全提高之安全配置
  4. 詳細(xì)介紹Linux優(yōu)盤引導(dǎo)安裝(一)自引導(dǎo)方式
  5. 舉例說明Linux不同網(wǎng)段訪問的設(shè)置辦法
責(zé)任編輯:小霞 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-03-05 10:24:33

2010-03-05 10:50:17

2010-03-05 11:58:52

2010-03-05 11:18:52

Linux shell

2010-03-05 13:00:46

2010-03-05 13:19:23

2010-03-05 12:50:38

Linux shell

2011-09-27 13:52:41

2010-06-23 16:05:36

Linux Bash

2010-06-23 15:55:36

Linux Bash

2011-06-21 14:42:37

ECMAScriptJavaScript

2019-08-12 07:45:44

Linux腳本shell

2016-12-14 19:24:41

2011-06-22 12:57:54

JVM

2010-02-23 10:32:20

Python 腳本

2024-11-27 09:19:25

2010-06-18 17:35:16

Linux Anacr

2010-06-22 09:28:31

Linux at命令

2009-12-18 11:48:24

網(wǎng)絡(luò)安裝 Linux

2021-02-15 17:29:46

LinuxShell腳本
點贊
收藏

51CTO技術(shù)棧公眾號