這裡討論的是tcsh中變數及環境變數時set和setenv命令的區別
set語法set name=value
setenv語法setenv name value
最大的區別是,set變數只對當前程序有效,不會傳遞給子程序
setenv變數不僅對當前程序有效,而且會傳遞給子程序
而當同時使用set和setenv設定乙個變數時,當前程序中,會優先使用set設定的值
如下面**所示
tcsh code : set && setenv
12 3 45
6 78 9
1011
1213
1415
linux-r9f7 /home/myname> setvary
="set use set"
linux-r9f7 /home/myname> setenv vary "set use setenv"
linux-r9f7 /home/myname> echo
$vary
set use set
linux-r9f7 /home/myname> echovary
set use setenv
linux-r9f7 /home/myname> source ~/bin/echovary
set use set
linux-r9f7 /home/myname> cat ~/bin/echovary
#!/bin/tcsh
echo
$vary
linux-r9f7 /home/myname> setenv another "set use setenv"
linux-r9f7 /home/myname> echo
$another
set use setenv
linux-r9f7 /home/myname>
tcsh code : echovary source
123
linux-r9f7 /home/myname> cat ~/bin/echovary#!/bin/tcsh
echo
$vary
在bash中也有類似的區別
bash不需要顯示宣告變數使用=號直接能宣告並初始化變數,但是如果沒有export,是不能被子程序使用的。
**:
摘記 putenv和setenv的區別
putenv和setenv都是用來改變環境變數的。include intputenv const char string putenv 用來改變或增加環境變數的內容。引數string的格式為name value,如果該環境變數原先存在,則變數內容會依引數string改變,否則此引數內容會成為新的環境...
Linux的set,env和export的區別
set 顯示當前shell的變數,包括當前使用者的變數 env 顯示當前使用者的變數 export 顯示當前匯出成使用者變數的shell變數 每個shell有自己特有的變數 set 顯示的變數,這個和使用者變數是不同的,當前使用者變數和你用什麼shell無關,不管你用什麼shell都在,比 如hom...
list和set的區別
集合list作為佇列來使用,先存入的資料會被先取出 listlist new arraylist list.add 1 list.add 2 list.add 3 取出來的結果為 1,2,3 集合set作為堆疊來使用,先存入的資料會後取出 setset new hashset set.add 1 s...