真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux腳本輸入的命令 linux執(zhí)行腳本的命令

linux腳本獲取輸入?yún)?shù)

用eval,可以把字符串當(dāng)作命令來執(zhí)行:

目前創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、拉薩網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

val=2

eval "x=\$$val"

echo $x

2. 用"$@"把參數(shù)列表轉(zhuǎn)化成數(shù)組

val=1

x=( "$@" )

echo "${x[$val]}"

注意:數(shù)組是從0開始的,也就是 ${x[0]} 對(duì)應(yīng) $1、${x[1]} 對(duì)應(yīng) $2,依次類推……

運(yùn)行l(wèi)inux腳本,遇到要按回車鍵,怎么讓它自動(dòng)應(yīng)答,繼續(xù)運(yùn)行腳本?

實(shí)現(xiàn)的方法和詳細(xì)的操作步驟如下:

1、第一步,連接相應(yīng)的linux主機(jī),進(jìn)入linux命令行狀態(tài),并等待輸入shell命令,見下圖,轉(zhuǎn)到下面的步驟。

2、第二步,完成上述步驟后,在linux命令行中輸入如下箭頭所示的代碼,見下圖,轉(zhuǎn)到下面的步驟。

3、第三步,完成上述步驟后,按“

Enter”鍵運(yùn)行shell命令,將看到直接執(zhí)行cp命令,而不提示用戶手動(dòng)判斷替代,見下圖。這樣,就解決了這個(gè)問題了。

linux中設(shè)計(jì)一個(gè)shell腳本程序可以接受命令行輸入的參數(shù)執(zhí)行相應(yīng)的菜單命令

之所以用到命令行參數(shù),關(guān)鍵在于shell腳本需要與運(yùn)行腳本的人員進(jìn)行交互。

bash shell提供了命令行參數(shù)添加在命令后面的數(shù)據(jù)值)、命令行選項(xiàng)修改命令行為的單字符值)和直接讀取鍵盤輸入。

1、命令行參數(shù)

向shell腳本傳遞數(shù)據(jù)的最基本方式是使用命令行參數(shù)。

1)讀取參數(shù)

讀取輸入的參數(shù)的變量為位置參數(shù),位置參數(shù)通過標(biāo)準(zhǔn)數(shù)字表示,

其中$0為程序名稱,$1為第一個(gè)參數(shù),$2為第二個(gè)參數(shù),依次類推,直到$9為第九個(gè)參數(shù)。

shell腳本自動(dòng)將命令行參數(shù)賦值給各個(gè)位置變量。

同時(shí)輸入多個(gè)參數(shù)可以是數(shù)值也可以是字符串)時(shí),必須使用空格分隔要想在參數(shù)值中包含空格,就必須使用單引號(hào)或雙引號(hào))

當(dāng)參數(shù)多于9個(gè)后,必須在shell腳本內(nèi)使用大括號(hào)將變量括起來,如${10}。從而可以使用任意個(gè)參數(shù)。

2)讀取程序名稱

傳遞給變量$0的字符串實(shí)際上是程序的路徑根據(jù)調(diào)用方法決定是相對(duì)還是絕對(duì)路徑)。

使用basename命令可以去掉路徑前綴,只獲得程序名稱名字中不 可以有空格)。

3)測(cè)試腳本

當(dāng)腳本認(rèn)為應(yīng)該包含參數(shù),卻實(shí)際上沒有數(shù)據(jù)時(shí),就會(huì)出錯(cuò)。

好的方法是對(duì)參數(shù)進(jìn)行檢查來保證使用參數(shù)前確實(shí)存在數(shù)據(jù),可以使用-n參數(shù)來檢查。

例子:if [ –n “$1” ] then .. else .. fi

2、特殊的參數(shù)變量

用于跟蹤命令行參數(shù)

1)參數(shù)計(jì)數(shù)

使用特殊變量$#測(cè)試執(zhí)行腳本時(shí)包含的命令行參數(shù)個(gè)數(shù)。腳本中任何位置都可以 使用$#

例子:if [ $# –ne 2 ] 即可測(cè)試參數(shù)個(gè)數(shù)

可以使用${!#}來返回最后一個(gè)命令行參數(shù)當(dāng)無參數(shù)時(shí),$#為0,而${!#}為程序名)

2)獲取所有數(shù)據(jù)

變量$*將命令行中提供的所有參數(shù)作為一個(gè)單詞處理,它將多個(gè)參數(shù)看成 一個(gè)參數(shù)。

變量$@將命令行中提供的所有參數(shù)作為同一個(gè)字符串中的多個(gè)單詞處理。 允許對(duì)其中的值進(jìn)行迭代一般使用for),分隔開不同參數(shù)

3、移位

shift命令能夠改變命令行參數(shù)的相對(duì)位置。默 認(rèn)將每個(gè)參數(shù)變量左移一個(gè)位置變量$0不變,把$1丟棄,注意不可以恢復(fù)了?。?/p>

在不清楚參數(shù)數(shù)目情況下,這是一個(gè)迭代參數(shù)的好辦法。

可以為shift提供一個(gè)參數(shù),來實(shí)現(xiàn)多位移變化。

4、處理選項(xiàng)

選項(xiàng)是由破折號(hào)引導(dǎo)的單個(gè)字母,用于更改命令的行為。

1,找出選項(xiàng)

1)處理簡(jiǎn)單選項(xiàng)

可以使用處理命令行參數(shù)相同的方法處理選項(xiàng),抽取時(shí)使用case語句進(jìn)行判斷是否符合選項(xiàng)格式。

2)從參數(shù)中分離選項(xiàng)

同時(shí)使用選項(xiàng)和參數(shù)時(shí),可以使用--指示選項(xiàng)列表的結(jié)束。發(fā)現(xiàn)--后,shell就知道后面的是普通參數(shù)了,停止使用case處理選項(xiàng)。

3)處理帶值的選項(xiàng)

選項(xiàng)后緊跟參數(shù)值,一種方法是在case中對(duì)應(yīng)選項(xiàng)后使用shift和讀后一位參數(shù)的方法處理。更好的方法如 下:

2,使用getopt命令

getopt命令在處理選項(xiàng)和參數(shù)時(shí)非常方便。它對(duì)參數(shù)進(jìn)行重新組 織,以便于解析

1)命令格式

getopt可以接受任意形式的選項(xiàng)和參數(shù)列表,并自動(dòng)將它們轉(zhuǎn)換為適當(dāng)?shù)母袷健?/p>

命令格式為: getopt options optstring parameters

選項(xiàng)字符串(opstring)用于定義命令行中的有效選項(xiàng)字母,以及哪些選項(xiàng)字母需要參數(shù)值。

2)腳本中使用getopt

需要使用set命令將現(xiàn)有的命令行選項(xiàng)和參數(shù)替換為getopt命令生成的 格式化形式。

需要將原始腳本命令行參數(shù)送給getopt命令,然后將getopt命令輸出送給set命令,如下:set – `getopts –q ab:cd “$@”`

但是getopt命令不能很好的處理帶有空格的參數(shù)值,它將空格解析為參數(shù)分隔符,而不是將雙引號(hào)引起來的兩個(gè) 值合并成一個(gè)參數(shù)。解決辦法如下:

3)更高級(jí)的getopts命令

getopts命令順序的對(duì)現(xiàn)有的shell參數(shù)變量進(jìn)行處理,每調(diào)用一次,只處理命令中檢測(cè)到的參數(shù)中的一個(gè)。處理完所有參數(shù)后,以大于0的退出 狀態(tài)退出。

非常適宜于在循環(huán)中解析所有命令行參數(shù)

格式為: getopts optstring variable

$optarg包含需要參數(shù)值的選項(xiàng)要使用的值,$optind包含getopts停止處理時(shí)在參數(shù)列表中的位置。

注意:當(dāng)getopts處理時(shí),會(huì)將選項(xiàng)前的-去掉,所以對(duì)應(yīng)的case中不需要破折號(hào)。

好的特性:

1)可以在參數(shù)值中包含空格

2)選項(xiàng)字母和參數(shù)值中間可以沒有空格

3)將在命令行中找到的未定義的選項(xiàng)都綁定為單一的輸出——問號(hào)

5、標(biāo)準(zhǔn)化選項(xiàng)

有一些字母選項(xiàng)具有標(biāo)準(zhǔn)含義。最好按照標(biāo)準(zhǔn)含義定義選項(xiàng)意義

-a –c –d –e –f –h –i –l –n –o –q –r –s –v- x –y

6、獲取用戶輸入

當(dāng)需要在執(zhí)行過程中獲得執(zhí)行腳本人員的輸入,使用read命令

1)基本讀取

read命令接受標(biāo)準(zhǔn)輸入或其他文件描述符輸入。讀入后將數(shù)據(jù)放入 一個(gè)標(biāo)準(zhǔn)變量中。

-p 允許在read命令行中直接指定一個(gè)提示。

可以指定多個(gè)變量,也可以不指定將放置在reply環(huán)境變量中)

2)計(jì)時(shí)

使用-t指定一個(gè)計(jì)時(shí)器,計(jì)時(shí)數(shù)滿還未輸入,read返回一個(gè)非0的退出狀態(tài)。

使用-n指定輸入的字符個(gè)數(shù),輸入達(dá)到預(yù)定數(shù)目時(shí),就自動(dòng)結(jié)束輸入

3)默讀

使用-s使輸入不顯示在終端例如輸入密碼)

4)讀取文件

最常用的方法是使用cat命令,并通過管道傳給包含read的while語句。

linux下shell腳本命令

Shell腳本基本知識(shí)

概述:shell其實(shí)是內(nèi)核與用戶之間的一個(gè)接口,

shell腳本

如果有一系列經(jīng)常使用的linux命令,你可以把它們存儲(chǔ)在一個(gè)文件腫。shenll可以讀取這個(gè)文件,并執(zhí)行其中的命令。這樣的文件成為腳本文件。

執(zhí)行shell腳本

要?jiǎng)?chuàng)建一個(gè)shell腳本,你要使用任何編輯器比如vi在文本文件中編寫他。

為了使用bash shell賴執(zhí)行腳本magic,其命令是:bash magic或者./magic

echo命令:

echo “this is an example of the echo command!”

屏幕上就會(huì)回顯“this is an example of the echo command!”

#符號(hào)

用于在shell腳本腫可以包含注解入口

echo “hello”

#this is a comment line. this would not produce any output!

echo “world!”

第二行是一個(gè)注解的例子。它將被shell忽略,而且不產(chǎn)生任何消息

變量:

可以在任何時(shí)間通過簡(jiǎn)單的賦值來創(chuàng)建。

語法:

variable name-value

Linux 中的所有變量都被當(dāng)作字符串

引用變量:

$符號(hào)用于引用一個(gè)變量的內(nèi)容

variable1 = ${variable2}

讀入值給變量

在執(zhí)行shell腳本時(shí),shell還允許用戶直接從鍵盤讀入一個(gè)值給變量,還可以使用read命令來作。

$read fname

本地和全局shell變量

局部變量

當(dāng)引用shell時(shí),只有創(chuàng)建它的shell能夠知道變量的存在

全局變量

稱為子shell

shell中創(chuàng)建的變量局部于創(chuàng)建它的shell,除非使用export命令特別指出是全局的。

環(huán)境變量:

通過改變這些變量的值,用戶能夠定制此環(huán)境

一些環(huán)境變量的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL

HOME變量

Linux系統(tǒng)中的每個(gè)用戶都有一個(gè)相關(guān)的稱作HOME的目錄

當(dāng)一個(gè)用戶登錄后,進(jìn)入相應(yīng)的HOME的目錄

$ echo $HOME

PATH變量

包含一列用冒號(hào)定界的目錄的路徑名字,便于可執(zhí)行程序的搜索。

PS1變量

PS1(Prompt String 1)變量包含了shell提示符,$符號(hào)

$ PS1 = “HELLO”

HELLO

PS2變量

是為第二個(gè)提示符設(shè)置值的環(huán)境變量

LOGNAME變量

包含用戶的注冊(cè)名字

$echo “${LOGNAME}”

SHLVL 變量

該變量包含當(dāng)前工作的shell level

SHELL變量

環(huán)境變量存儲(chǔ)了用戶缺省的shell

env命令

可用來查看所有的已移出的環(huán)境變量表和它們各自的值!

命令替換

在單個(gè)命令行中使用多個(gè)命令的另外一種方法(非Pipes)是通過命令替換

echo “the data is `date`”

expr命令

用于求之算術(shù)表達(dá)式。該命令的輸出被送到標(biāo)準(zhǔn)輸出

$ expr 4 + 5

將在屏幕上顯示9

算術(shù)展開:

你可以在$((…)) 中括一個(gè)表達(dá)式,用下面的命令來計(jì)算它的值;

$((expression))

example1

編寫一個(gè)shell腳本用于計(jì)算呼叫中心未應(yīng)答的詢問的數(shù)量。該腳本應(yīng)該接受一天那所報(bào)告的詢問的總數(shù)和應(yīng)答的詢問的數(shù)量,以便計(jì)算未應(yīng)答的詢問的數(shù)量。

所有未應(yīng)答的詢問總數(shù)=所有詢問的總數(shù)-應(yīng)答的詢問的數(shù)量

!--[if !supportLists]--※ !--[endif]--※※※※※※※※※※※※※※※※※※※※※※※

條件執(zhí)行

test和[]

求值表達(dá)式,并返回true(0)或false()

數(shù)值測(cè)試:

-eq 等于則為真

-ne 不等于則為真

-gt 大于則為真

-ge 大于等于則為真

-lt 小于則為真

-le 小于等于則為真

if構(gòu)造

Linux shell提供了循環(huán)和判定的構(gòu)造,可以在shell腳本中使用

算術(shù)測(cè)試

結(jié)合if構(gòu)造,它可以用于測(cè)試變量的數(shù)字值

串測(cè)試

test命令也可以用于字符串

= 等于則為真

!= 不相等則為真

-z 字符串 長(zhǎng)度為零則為真

-n 字符串 長(zhǎng)度不為零則為真

文件測(cè)試

test命令也可以用于檢查文件的狀態(tài)

-e 文件存在則為真

-r 文件存在并且可讀則為真

-w 文件存在并且可寫則為真

-x 文件存在并且可執(zhí)行則為真

-s 文件存在并且至少有一個(gè)字符則為真

-d 文件存在并且為目錄則為真

-f 文件存在并且為普通文件則為真

-c 文件存在并且為字符型文件則為真

-b 文件存在并且為塊特殊文件則為真

-a并且 -o或者 !非

exit命令

用于終止shell腳本的執(zhí)行并返回到$提示符下

case 。。。esac

shell腳本中使用的這個(gè)構(gòu)造依據(jù)變量的值而執(zhí)行一組特定指令

當(dāng)變量的值和其中的一個(gè)值匹配的時(shí)候,就執(zhí)行寫在該值下的一組命令。

example3

迭代

while構(gòu)造

while 條件

do

命令(s)

done

只有條件為真的時(shí)候,才能執(zhí)行do與done之間的命令

until構(gòu)造

until循環(huán)構(gòu)造的求值模式于while循環(huán)相反

until循環(huán)將繼續(xù)執(zhí)行直到求值的條件為真的時(shí)候

for構(gòu)造

for variable_name in list_of_values

do

done

for循環(huán)取一列值作為輸入并對(duì)循環(huán)中每個(gè)值執(zhí)行循環(huán)

break和contineu命令

同其他語言中的用法

example4

控制進(jìn)程的執(zhí)行

請(qǐng)求后臺(tái)處理

用于請(qǐng)求后臺(tái)進(jìn)程的符號(hào)是 ()

$ wc tempfile

[1] 2082

$ vi newfile

檢查后臺(tái)進(jìn)程

ps(進(jìn)程狀態(tài))命令為每個(gè)當(dāng)前的活動(dòng)的每個(gè)進(jìn)程產(chǎn)生一行入口。

終止后臺(tái)進(jìn)程

可用kill,如下所示

kill 278

查看完成一個(gè)命令所花的時(shí)間

你可以使用time命令來查看一個(gè)命令從開始到結(jié)束所花的時(shí)間

time fine /etc –name “passwd” 2 /dev/null /dev/null表明忽略錯(cuò)誤信息。

管道的介紹

垂直條(|)是管道字符

它只是shell:“|”前面命令的輸出作為“|”之后命令的輸入發(fā)送

ls –l | more

用管道組合命令,功能強(qiáng)大


分享題目:linux腳本輸入的命令 linux執(zhí)行腳本的命令
網(wǎng)站鏈接:http://weahome.cn/article/hgoocd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部