c語言大括號的用法
時(shí)間:
長思709由 分享
c語言大括號的用法
大括號{}出現(xiàn)在shell腳本的各個(gè)角落,其用法也各有不同。同音多義字在漢語中最容易讓人混淆,而大括號也正是bash語言中的“同音多義字”。下面小編就為大家介紹c語言大括號的用法。
{}第一種用法,符號擴(kuò)展
#!/bin/bash
echo \"{hello,world}\"
#######################
# 輸出為:"hello" "world"
#######################
echo {a..c} #只能是..
######################
# 輸出為: a b c
######################
{}第二種用法,代碼塊表示法,與c語言中的作用相似,c語言中,有了{(lán)}的代碼塊,其變量作用域就改變了;bash中,卻不存在這個(gè)功能,在{}中的內(nèi)容,仍然與外部變量名相通。此外,{}代碼塊表示法還有一個(gè)作用,就是將代碼塊內(nèi)所有的輸入輸出信息重定向。
#腳本1
#!/bin/bash
a=123
{ a=321; } #大括號兩邊內(nèi)部變量與大括號之間一定要用空格隔開
echo "a = $a " #輸出 a=321
#腳本2
#!/bin/bash
File="`pwd`/fas" #fas是由自己在當(dāng)前目錄創(chuàng)建的文件
{
read line1
read line2
} < $File #此處進(jìn)行重定向,將fas文件的內(nèi)容讀入到line1和line2
echo "First line in $File is: "
echo "$line1"
echo
echo "second line in $File is :"
echo "$line2"
exit 0
與大括號{}有些相似的符號是圓括號()。但圓括號()內(nèi)的代碼將啟動一個(gè)子shell來運(yùn)行,{}不會這樣。
#!/bin/bash
a=123
( a=321; )
echo "a = $a" #a=123
附注:
1.如果想讓你的腳本像ls等命令一樣通用,那么需要將命令復(fù)制到/usr/local/bin,并使用chmod 777 filename修改其執(zhí)行權(quán)限。
2./bin目錄、/sbin目錄、/usr/local/bin/目錄、/usr/local/sbin目錄、/usr/bin目錄、/usr/sbin目錄的區(qū)別與聯(lián)系
最需要注意的一點(diǎn),usr不是user的意思,而是unix system resource的簡稱,也就是unix系統(tǒng)資源。在/usr這個(gè)目錄下,放了一些系統(tǒng)
相同之處:都是一些命令;
不同之處:
/bin:基本命令
/sbin:基本系統(tǒng)命令
/usr/bin:與/bin類似,包括此后安裝軟件的命令
/usr/sbin:與/sbin類似,包括此后增加的系統(tǒng)管理的一些命令
/usr/local/bin:與/bin,/usr/bin類似,但是局部(local)范圍,linux是多用戶系統(tǒng),有分級的權(quán)限,有些軟件內(nèi)容必須添加在/usr/local/bin,而不是/usr
/usr/local/sbin:同上
3.好腳本需要珍藏,以備不時(shí)之需。