1. 如下執行結果:
[liuqiang@slaves1 ~]$ aaaa=bbbb
[liuqiang@slaves1 ~]$ env |grep aaaa
[liuqiang@slaves1 ~]$ set |grep aaaa
aaaa=bbbb
[liuqiang@slaves1 ~]$ export aaaa
[liuqiang@slaves1 ~]$ env |grep aaaa
aaaa=bbbb
[liuqiang@slaves1 ~]$ unset aaaa
[liuqiang@slaves1 ~]$ set|grep aaaa
_=aaaa // 請問這里是怎么回事?
[liuqiang@slaves1 ~]$ set|grep aaaa
2. 如下執行結果
[liuqiang@node4 ~]$ test='* means all files' //使用單引號
[liuqiang@node4 ~]$ echo $test
1.txt iostat.sh test test1 means all files
[liuqiang@node4 ~]$ test="* means all files" //使用雙引號
[liuqiang@node4 ~]$ echo $test
1.txt iostat.sh test test1 means all files
請問: 變數定義后,在參考的時候,貌似之前變數存盤是使用單引號還是雙引號都沒有區別,都是直接參考變數,請教別人給的解釋是shell存盤變數的時候是不存盤引號的,不是很理解。。。
2.[ -d $1 ] 這種條件運算式,請問$1的引數從哪里輸入呢?
感覺好像沒有輸入的引數串列啊~
以上,謝謝`
uj5u.com熱心網友回復:
1、我也不太清楚,大概是等待重新定義變數的意思2、單雙引號是為了方便定義帶有空格的長變數,比如test= Hello world 是不行的,必須加上引號test='Hello world' ;還有雙引號的作用可以參考變數,比如定義test1='$test ! welcome come to' ,echo $test1 輸出的就是$test ! welcome come to ,定義test2="$test ! welcome come to" ,echo $test2 輸出的就是Hello world!welcome come to了。
3、$1一般來說就是腳本后接的第一個引數,比如./test.sh 123 ,在腳本里$1=123。
uj5u.com熱心網友回復:
單雙引號主要是區分輸出是參考變數,還是值的$ echo "$PATH"
/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$ echo '$PATH'
$PATH
uj5u.com熱心網友回復:
沒有人知道么? 有沒有好一點的解釋啊?轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/83595.html
標籤:系統維護與使用區
下一篇:求助帖:虛擬機加域
