新聞中心
詳解Linux中IFS的作用及用法

Linux是一款非常優(yōu)秀的操作系統(tǒng),在使用過程中,我們經(jīng)常會需要使用IFS這個工具。IFS是Linux系統(tǒng)中的一個函數(shù),其作用是用于定義分隔符。
在Linux中,如果我們需要將一個字符串或文件中的內(nèi)容按照某種規(guī)則進(jìn)行拆分或解析,就需要定義一個分隔符。而這個分隔符,將會被設(shè)置為IFS變量中的值,以便于程序可以使用這個分隔符進(jìn)行拆分。
那么,IFS變量是如何設(shè)置的呢?在Linux中,我們可以使用export命令來定義IFS變量。下面是示例代碼:
“`
export IFS=”:”
“`
在上述代碼中,我們將IFS的值設(shè)置為“:”,也就是將“:”作為分隔符。在設(shè)置完IFS變量后,我們就可以使用IFS變量來代替“:”這個符號進(jìn)行字符串或文件的拆分。
下面我們來看一個實際的例子。假設(shè)我們有一個文件a.txt,其中每行都是由“:”分隔的一些列字符。我們現(xiàn)在想要讀取這個文件,并將其中的每個列提取出來,將其保存到一個數(shù)組中。那么我們可以使用以下代碼來實現(xiàn):
“`
# 定義IFS變量
export IFS=”:”
# 將文件a.txt中的數(shù)據(jù)按照行來逐一讀取
while read -r line; do
# 將讀取到的列存放到一個數(shù)組中
array=($line)
# 打印數(shù)組中的之一個元素
echo ${array[0]}
done
“`
在上述代碼中,我們首先設(shè)置了IFS變量的值為“:”,然后使用while循環(huán)讀取文件中的每一行數(shù)據(jù)。在讀取每一行數(shù)據(jù)時,我們將這一行通過IFS分割成了若干個列,然后將這些列分別存放到了一個數(shù)組中。最后打印了數(shù)組中的之一個元素。
通過上面的例子,我們可以看到,如果我們需要對一個文件進(jìn)行批量處理時,使用IFS函數(shù)可以非常方便地將其拆分成若干個列。而且使用IFS命令的好處在于,它既可以使用默認(rèn)設(shè)置,也可以根據(jù)自己的需要進(jìn)行自定義設(shè)置。
一下,在Linux系統(tǒng)中,IFS函數(shù)的作用是定義分隔符,并且可以在字符串或文件的拆分中使用。它的用法非常簡單,可以根據(jù)自己的需要進(jìn)行定制。適當(dāng)?shù)厥褂肐FS函數(shù),可以使我們在處理文件時事半功倍。
相關(guān)問題拓展閱讀:
- linux中的shell變量的種類及各種類的用處是什么?
- linux環(huán)境變量的作用是什么?。???DISPLAY 用來設(shè)置將圖形顯示到何處。 HOME 當(dāng)前用戶的主目錄….
linux中的shell變量的種類及各種類的用處是什么?
2.1.1 本地變量
定義:是在用戶現(xiàn)在的shell生命期的腳本中使用;
例:$name=”Red Hat Linux” #把變量設(shè)置為Red Hat Linux
$echo ${name} or #顯示變量內(nèi)容
=$echo $name #等同上面的語意
Red Hat Linux #顯示其設(shè)定州族內(nèi)容,
$set | grep “name” #查看剛才所設(shè)定的內(nèi)容,或不加’grep “name”‘查看用戶自己所有的本地變量,
$readonly name #把name這個變量設(shè)置為只讀變量,不允許再次設(shè)置,這可參考變量定義;-_-!
$name=”He SenLin” #重新賦值
bash:name:readonly variable #只讀文件系統(tǒng)
$readonly #查看系統(tǒng)存在的只讀文件
附:重新登錄一下系統(tǒng),再次用
$echo ${name}
#本地變量就不存在了,
說明本地變量只能存活在用戶shell的生命周期中,重登錄就不在了,
2.1.2 環(huán)境變量
定義:環(huán)境變量用于所有用戶進(jìn)程,包括編輯器,腳本和應(yīng)用,登錄進(jìn)程為父進(jìn)程,shell中執(zhí)行的用戶進(jìn)程均為子進(jìn)程,不像本地變量只用于現(xiàn)在的shell.
存在目錄在所有用戶的主目錄下/.bash_profile或
如何設(shè)置環(huán)境變量?之一種方法就是編輯上面的二個文件,還可以用”export”進(jìn)哪跡肆行設(shè)定或更改;這可不像本地變量只需 name=”Red Hat Linux”那樣簡單,但卻可以把本地變量更改為環(huán)境變量;只須在本地變量結(jié)束后,輸入:export ;例,我們把name由本地變量修改為環(huán)境變量,我們可以這樣做;
#name=”Red Hat Linux” #本地變量
#export name #變量name由本地升為環(huán)境
當(dāng)然也可以用下面這種方法;
#export name=”Red Hat Linux” #直接定義name為環(huán)境變量;
定義后,可通過env進(jìn)行查看,不知道上面的本地環(huán)境變量由哪個命令進(jìn)行查看你記住了沒有?,演示一下查李轎看現(xiàn)在定義的環(huán)境變量;
#env | grep “name”
Red Hat Linux
同樣不加后面grep “name”,這個參數(shù)也是查看所有的環(huán)境變量;更同樣的是我們也可以運行readonly這個參數(shù)給name以只讀屬性;
Tips:環(huán)境變量就是全部包含在本地變量中,注意一點,本地變量不能運行在全部進(jìn)程中,只有環(huán)境變量可以,再不懂就聯(lián)想一下人與自然吧;-_-!還是不會?用絕招:
#you=myfriend #設(shè)置本地變量name為myfriend
#echo ${you} #查看一下是否成功
myfriend #成功
#sh #更換shell環(huán)境等同重登錄,這相當(dāng)一個
sh-2.05b#echo $you #用戶子進(jìn)程
#沒顯示,說明不存在,真的不存在?
sh-2.05b#exit #返回bash環(huán)境
#echo $you #再次查看;
myfriend #又出來了,怎么回事?
#export you #把變量you設(shè)為環(huán)境變量;
#sh #再試一次;
sh-2.05b#echo $you
myfriend #ok,you see?
再不懂,,你就把我殺了吧,,什么,你不知道我住在哪?汗-_-!
再補充一點,就是在sh進(jìn)程中設(shè)置環(huán)境變量是可以寫回bash環(huán)境中,因為bash是父進(jìn)程,只有老的才有小的,小的怎么才能有老的哩?
2.1.3 變量替換
定義:用變量的值替換它的名字.
查看方式:echo
可以用echo顯示可以單個變量的取值;
#str=”this is example” #設(shè)置本地變量
#echo “can you see `echo $str`” #顯示
cat you see this is example #替換就到這了,不明白明再來
變量替換續(xù)
除了上面的這個方式以外還有五種哦;別急,一個一個來;-_-!
格式 定義
${variable name} 顯示實際值到variable name 1
${variable name :+value} 如果設(shè)置了variable name,就把value顯示,
未設(shè)置則為空; 2
${variable name:-value} 如果設(shè)置了variable name,就顯示它,未設(shè)置就顯示
value>; 3
${variable name:?value} 未設(shè)置提示用戶錯誤信息value; 4
${variable name:=value} 如未設(shè)置就把value設(shè)置并顯示, 5
變量清除:
unset
#echo $name #變量 name是否存在?
Red Hat Linux #存在
#unset name #清除name變量
#echo $name #是否成功
#成功
注意:如果用readonly限制了只讀屬性就會失敗,還有怎么從環(huán)境變量中去掉那個變量呢?還記的用哪個設(shè)定環(huán)境變量的嗎?對.export,只須在它后面加”-n”參數(shù)即可
2.1.4 位置變量
定義:位置變量表示$0,$1,$2,….$9
$0 $1 $2 $3 $4
腳本名 A B C D
向腳本中使用位置參數(shù);
向系統(tǒng)命令傳遞參數(shù);
例:./test
#vi /test#創(chuàng)建并編輯/test文件
#!/bin/bash
#test
echo “這是腳本的之一個名稱: $0”
echo “這是腳本的第二個位置參數(shù): $1”
echo “這是腳本的第三個位置參數(shù): $2”
echo “這是腳本的第四個位置參數(shù): $3”
echo “這是腳本的第五個位置參數(shù): $4”
#chmod u+x ./test #加執(zhí)行權(quán)限;
#./test A B C#加參數(shù)證驗
echo “這是腳本的之一個名稱: ./test
echo “這是腳本的第二個位置參數(shù): A
echo “這是腳本的第三個位置參數(shù): B
echo “這是腳本的第四個位置參數(shù): C
echo “這是腳本的第五個位置參數(shù):
#vi test1.sh #新建一個腳本文件
#!/bin/bash
#name:test1.sh
#to call: test1.sh#使用方式
find ~ -perm $1 -print
$#系統(tǒng)命令
#chmod u+c test1.sh
#./test1.sh 755 date #位置一為755,2位date
/dev/ip
/dev/iput
.
.
.
Fri May 13 2:31:54 CST 2023
2.1.5 標(biāo)準(zhǔn)變量:
bash默認(rèn)建立一些環(huán)境變量就是標(biāo)準(zhǔn)變量,可以通俗的說就是不是你加的而是裝好機子帶的那些環(huán)境變量, 可在/etc/profile中進(jìn)行定義,
命令 意義
HOME 用戶主目錄
IFS 默認(rèn)分隔符
MAIL 郵箱地址
MAILCHECK 郵箱檢查間隔
PWD 用戶當(dāng)前工作目錄
LOGNAME 當(dāng)前用戶登錄名
2.1.6 特殊變量
命令 意義
$# 傳遞到腳本的參數(shù)列表
$? 前個命令執(zhí)行情況,0成功,其它值失敗
$$ 腳本運行的當(dāng)前進(jìn)程號
$! 運行腳本最后一個命令
$* 顯示腳本全部參數(shù)
2.1.7 影響變量的命令
declare 設(shè)置或顯示變量
-f 只顯示函數(shù)名
-r 創(chuàng)建只讀變量
-x 創(chuàng)建轉(zhuǎn)出變量
-i 創(chuàng)建整數(shù)變量
使用”+”代替”-“,可以顛倒選項的意思,-r除外,
export 用于傳遞給子shell的變量
— 表明選項結(jié)束,所有后續(xù)參數(shù)都是實參,
-f 表明在”名-值”對中的名字是函數(shù)名,
-n 把全局變量轉(zhuǎn)換成局部變量,換句話就是不再傳給shell
-p 顯示全局變量列表,
shift
用于移動位置變量,調(diào)整位置變量,使$3的值賦給$2.$2的值賦予$1.
#vi /test
#!/bin/bash
#test
echo “這是腳本的之一個名稱: $0”
echo “這是腳本的第二個位置參數(shù): $1”
echo “這是腳本的第三個位置參數(shù): $2”
echo “這是腳本的第四個位置參數(shù): $3”
echo “這是腳本的第五個位置參數(shù): $4”
shift
echo “這是腳本的第二個位置參數(shù): $1”
echo “這是腳本的第三個位置參數(shù): $2”
#chmod u+x ./test
#./test A B C
echo “這是腳本的之一個名稱: ./test
echo “這是腳本的第二個位置參數(shù): A
echo “這是腳本的第三個位置參數(shù): B
echo “這是腳本的第四個位置參數(shù): C
echo “這是腳本的第五個位置參數(shù): $4”
shift #顯示的時候并沒有,加在此只會明了
echo “這是腳本的第二個位置參數(shù): B
echo “這是腳本的第三個位置參數(shù): C
給shfit加一個數(shù)試一下:
#vi ./test
#!/bin/bash
#test
echo “這是腳本的之一個名稱: $0”
echo “這是腳本的第二個位置參數(shù): $1”
echo “這是腳本的第三個位置參數(shù): $2”
echo “這是腳本的第四個位置參數(shù): $3”
echo “這是腳本的第五個位置參數(shù): $4”
shift 2
echo “這是腳本的第二個位置參數(shù): $1”
echo “這是腳本的第三個位置參數(shù): $2”
#./test A B C D
echo “這是腳本的之一個名稱: ./test
echo “這是腳本的第二個位置參數(shù): A
echo “這是腳本的第三個位置參數(shù): B
echo “這是腳本的第四個位置參數(shù): C
echo “這是腳本的第五個位置參數(shù): D
shift #顯示的時候并沒有,加在此只會明了
echo “這是腳本的第二個位置參數(shù): C
echo “這是腳本的第三個位置參數(shù): D
第二節(jié) 引號
2.1 引號的必要性
2.2 雙引號有什么作用
2.3 單引號的作用
2.4 反引號的作用
linux環(huán)境變量的作用是什么?。???DISPLAY 用來設(shè)置將圖形顯示到何處。 HOME 當(dāng)前用戶的主目錄….
系統(tǒng)環(huán)境變量可以幫助用戶更快捷打開一些程序,比如:ls等命令,在Linux中什么東西沖散都是文件,一些命令基本都保存瞎敏在/usr/bin和/usr/in目錄下,系統(tǒng)環(huán)境變量中有這兩個目錄,散神氏所以可以打開這兩個目錄下的文件。然后做我們需要的操作
關(guān)于DISPLAY我倒不是很了解,不過在網(wǎng)上是有不少相關(guān)資料的,你可以去看看
關(guān)于linux 中ifs的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計,網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁設(shè)計,1500元定制網(wǎng)站優(yōu)化全包,先排名后付費,已為上千家服務(wù),聯(lián)系電話:13518219792
網(wǎng)站題目:詳解linux中ifs的作用及用法(linux中ifs)
當(dāng)前路徑:http://m.fisionsoft.com.cn/article/cocghic.html


咨詢
建站咨詢
