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

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

系統(tǒng) Linux
Linux shell腳本基礎(chǔ)前面我們在介紹Linux shell腳本的控制流程時,還有一部分內(nèi)容沒講就是有關(guān)here document的內(nèi)容這里繼續(xù)。

Linux shell腳本基礎(chǔ)已經(jīng)被分成好幾個部分了,這里對控制流程的內(nèi)容也就馬上講完了,這是最后一部分關(guān)于here document,這里舉例稍微有點復(fù)雜,我們慢慢來分析這個復(fù)雜Linux shell腳本。

6. Here documents

當(dāng)要將幾行文字傳遞給一個命令時,here documents(譯者注:目前還沒有見到過對該詞適合的翻譯)一種不錯的方法。對每個腳本寫一段幫助性的文字是很有用的,此時如果我們四有那個 here documents就不必用echo函數(shù)一行行輸出。 一個 "Here document" 以 << 開頭,后面接上一個字符串,這個字符串還必須出現(xiàn)在here document的末尾。下面是一個例子,在該例子中,我們對多個文件進行重命名,并且使用here documents打印幫助:

#!/bin/sh

# we have less than 3 arguments. Print the help text:

if [ $# -lt 3 ] ; then

cat <

ren -- renames a number of files using sed regular expressions

USAGE: ren 'regexp' 'replacement' files...

EXAMPLE: rename all *.HTM files in *.html:

ren 'HTM$' 'html' *.HTM

HELP

exit 0

fi

OLD="$1"

NEW="$2"

# The shift command removes one argument from the list of

# command line arguments.

shift

shift

# $* contains now all the files:

for file in $*; do

if [ -f "$file" ] ; then

newfile=`echo "$file" | sed "s/${OLD}/${NEW}/g"`

if [ -f "$newfile" ]; then

echo "ERROR: $newfile exists already"

else

echo "renaming $file to $newfile ..."

mv "$file" "$newfile"

fi

fi

done

這是一個復(fù)雜一些的例子。讓我們詳細討論一下。第一個if表達式判斷輸入命令行參數(shù)是否小于3個 (特殊變量$# 表示包含參數(shù)的個數(shù)) 。如果輸入?yún)?shù)小于3個,則將幫助文字傳遞給cat命令,然后由cat命令將其打印在屏幕上。打印幫助文字后程序退出。如果輸入?yún)?shù)等于或大于3個,我們 就將第一個參數(shù)賦值給變量OLD,第二個參數(shù)賦值給變量NEW。下一步,我們使用shift命令將第一個和第二個參數(shù)從參數(shù)列表中刪除,這樣原來的第三個 參數(shù)就成為參數(shù)列表$*的第一個參數(shù)。然后我們開始循環(huán),命令行參數(shù)列表被一個接一個地被賦值給變量$file。接著我們判斷該文件是否存在,如果存在則 通過sed命令搜索和替換來產(chǎn)生新的文件名。然后將反短斜線內(nèi)命令結(jié)果賦值給newfile。這樣我們就達到了我們的目的:得到了舊文件名和新文件名。然 后使用mv命令進行重命名。這樣就明了這個復(fù)雜的Linux shell腳本了吧。

【編輯推薦】

  1. 詳細介紹Linux shell腳本基礎(chǔ)學(xué)習(xí)(一)
  2. Linux系統(tǒng)安全提高之安全配置
  3. Linux系統(tǒng)安全提高之系統(tǒng)優(yōu)化
  4. 閑談十個linux管理常見錯誤
  5. 全面剖析Linux系統(tǒng)管理命令w
責(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 13:09:23

Linux shell

2010-03-05 11:18:52

Linux shell

2010-03-05 13:00:46

2010-03-05 13:19:23

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-07 18:22:23

shelllinuxgrep

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ù)棧公眾號