新聞中心
Linux是世界上更流行的開源操作系統(tǒng)之一,也是一個非常強大的平臺,可以幫助用戶實現(xiàn)多種功能。Linux發(fā)行版在開發(fā)和調(diào)試過程中需要經(jīng)常涉及到變量類型轉(zhuǎn)換技巧,這不僅可以提高代碼的效率和靈活性,還能增加代碼的可讀性和可維護性。本文將詳細介紹Linux變量類型轉(zhuǎn)換技巧。

1.字符串轉(zhuǎn)整型
很多時候需要將字符串轉(zhuǎn)換為整型,可以用C標準庫函數(shù)atoi(ASCII to integer),它可以將一個字符串轉(zhuǎn)換為對應(yīng)的整數(shù)值,字符串必須是以數(shù)字字符開頭,否則返回0。例如:
char s[]=”1234″;
int x=atoi(s);
這樣可以將字符串“1234”轉(zhuǎn)換為整數(shù)值1234。
2.整型轉(zhuǎn)字符串
將整型轉(zhuǎn)換為字符串可以使用C標準庫函數(shù)itoa(integer to ASCII),但是Linux中并沒有該函數(shù)??梢允褂胹printf函數(shù)來實現(xiàn),該函數(shù)可以將格式化后的輸出寫入一個字符數(shù)組中:
int x=1234;
char s[10];
sprintf(s,”%d”,x);
這樣就可以將整數(shù)值1234轉(zhuǎn)換為字符串“1234”。
3.字符串轉(zhuǎn)浮點型
將字符串轉(zhuǎn)換為浮點數(shù),可以使用C標準庫函數(shù)atof(ASCII to float),該函數(shù)接收一個字符串參數(shù),返回對應(yīng)的浮點數(shù)值。例如:
char s[]=”123.45″;
float f=atof(s);
這樣可以將字符串“123.45”轉(zhuǎn)換為浮點數(shù)值123.45。
4.浮點型轉(zhuǎn)字符串
將浮點數(shù)轉(zhuǎn)換為字符串,可以使用C標準庫函數(shù)ftoa(float to ASCII),但是Linux中并沒有該函數(shù)。可以使用sprintf函數(shù)來實現(xiàn),該函數(shù)可以將格式化后的輸出寫入一個字符數(shù)組中:
float f=123.45;
char s[10];
sprintf(s,”%f”,f);
這樣可以將浮點數(shù)值123.45轉(zhuǎn)換為字符串“123.450000”。
5.字符數(shù)組轉(zhuǎn)字符串
字符數(shù)組經(jīng)常被用作字符串,但是有時候需要將字符數(shù)組轉(zhuǎn)換為字符串??梢允褂肅標準庫函數(shù)strcpy(string copy),它可以復(fù)制一個字符串到另一個字符數(shù)組中。例如:
char s[]={‘h’,’e’,’l’,’l’,’o’};
char t[10];
strcpy(t,s);
這樣可以將字符數(shù)組s復(fù)制到字符數(shù)組t中,實現(xiàn)將字符數(shù)組轉(zhuǎn)換為字符串。
6.字符串轉(zhuǎn)字符數(shù)組
如果需要將字符串轉(zhuǎn)換為字符數(shù)組,可以使用C標準庫函數(shù)strncpy(string copy with n characters),它可以復(fù)制一個字符串的前n個字符到另一個字符數(shù)組中。例如:
char s[]=”hello”;
char t[10];
strncpy(t,s,3);
這樣可以將字符串“hello”的前3個字符復(fù)制到字符數(shù)組t中,實現(xiàn)將字符串轉(zhuǎn)換為字符數(shù)組。
7.整型轉(zhuǎn)字符數(shù)組
如果需要將整數(shù)值轉(zhuǎn)換為字符數(shù)組,可以使用C標準庫函數(shù)sprintf將整數(shù)轉(zhuǎn)換為字符串,然后使用strcpy將字符串復(fù)制到字符數(shù)組中。例如:
int x=1234;
char s[10];
char t[10];
sprintf(s,”%d”,x);
strcpy(t,s);
這樣可以將整數(shù)值1234轉(zhuǎn)換為字符數(shù)組t[]={‘1′,’2′,’3′,’4’}。
通過本文的學(xué)習(xí),我們可以發(fā)現(xiàn),Linux變量類型轉(zhuǎn)換技巧是非常簡單和實用的。對于這些技巧的熟悉程度也會直接關(guān)系到我們編寫的代碼的效率和質(zhì)量。因此,在實際開發(fā)中,我們應(yīng)該經(jīng)常運用這些技巧,并不斷地積累和從而提高自己在Linux開發(fā)中的編程能力。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220linux中的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)境變量用于所有用戶進程,包括編輯器,腳本和應(yīng)用,登錄進程為父進程,shell中執(zhí)行的用戶進程均為子進程,不像本地變量只用于現(xiàn)在的shell.
存在目錄在所有用戶的主目錄下/.bash_profile或
如何設(shè)置環(huán)境變量?之一種方法就是編輯上面的二個文件,還可以用”export”進哪跡肆行設(shè)定或更改;這可不像本地變量只需 name=”Red Hat Linux”那樣簡單,但卻可以把本地變量更改為環(huán)境變量;只須在本地變量結(jié)束后,輸入:export ;例,我們把name由本地變量修改為環(huán)境變量,我們可以這樣做;
#name=”Red Hat Linux” #本地變量
#export name #變量name由本地升為環(huán)境
當然也可以用下面這種方法;
#export name=”Red Hat Linux” #直接定義name為環(huán)境變量;
定義后,可通過env進行查看,不知道上面的本地環(huán)境變量由哪個命令進行查看你記住了沒有?,演示一下查李轎看現(xiàn)在定義的環(huán)境變量;
#env | grep “name”
Red Hat Linux
同樣不加后面grep “name”,這個參數(shù)也是查看所有的環(huán)境變量;更同樣的是我們也可以運行readonly這個參數(shù)給name以只讀屬性;
Tips:環(huán)境變量就是全部包含在本地變量中,注意一點,本地變量不能運行在全部進程中,只有環(huán)境變量可以,再不懂就聯(lián)想一下人與自然吧;-_-!還是不會?用絕招:
#you=myfriend #設(shè)置本地變量name為myfriend
#echo ${you} #查看一下是否成功
myfriend #成功
#sh #更換shell環(huán)境等同重登錄,這相當一個
sh-2.05b#echo $you #用戶子進程
#沒顯示,說明不存在,真的不存在?
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進程中設(shè)置環(huán)境變量是可以寫回bash環(huán)境中,因為bash是父進程,只有老的才有小的,小的怎么才能有老的哩?
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 標準變量:
bash默認建立一些環(huán)境變量就是標準變量,可以通俗的說就是不是你加的而是裝好機子帶的那些環(huán)境變量, 可在/etc/profile中進行定義,
命令 意義
HOME 用戶主目錄
IFS 默認分隔符
MAIL 郵箱地址
MAILCHECK 郵箱檢查間隔
PWD 用戶當前工作目錄
LOGNAME 當前用戶登錄名
2.1.6 特殊變量
命令 意義
$# 傳遞到腳本的參數(shù)列表
$? 前個命令執(zhí)行情況,0成功,其它值失敗
$$ 腳本運行的當前進程號
$! 運行腳本最后一個命令
$* 顯示腳本全部參數(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下shell編程變量替換問題
file打開文件,然后再輸入
i=$( ls )
w保存。
不要用cat > file
方式寫腳本, 這樣腳本內(nèi)容會被shell解釋展開。追問用cat命令寫腳本的好處是調(diào)用命令,目錄,文正遲件名的時候可以table鍵補齊,這樣子會方便很多啊。v要實中尺現(xiàn)這個功能的話,需舉培李要安裝什么插件嗎?
linux如何轉(zhuǎn)換變量類型的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux如何轉(zhuǎn)換變量類型,Linux變量類型轉(zhuǎn)換技巧詳解,linux中的shell變量的種類及各種類的用處是什么?,linux下shell編程變量替換問題的信息別忘了在本站進行查找喔。
成都創(chuàng)新互聯(lián)科技有限公司,經(jīng)過多年的不懈努力,公司現(xiàn)已經(jīng)成為一家專業(yè)從事IT產(chǎn)品開發(fā)和營銷公司。廣泛應(yīng)用于計算機網(wǎng)絡(luò)、設(shè)計、SEO優(yōu)化、關(guān)鍵詞排名等多種行業(yè)!
網(wǎng)頁名稱:Linux變量類型轉(zhuǎn)換技巧詳解(linux如何轉(zhuǎn)換變量類型)
分享鏈接:http://www.dlmjj.cn/article/cdohjis.html


咨詢
建站咨詢
