set和setenv的區別

2021-05-26 10:45:37 字數 1230 閱讀 1589

這裡討論的是tcsh中變數及環境變數時set和setenv命令的區別

set語法set name=value

setenv語法setenv name value

最大的區別是,set變數只對當前程序有效,不會傳遞給子程序

setenv變數不僅對當前程序有效,而且會傳遞給子程序

而當同時使用set和setenv設定乙個變數時,當前程序中,會優先使用set設定的值

如下面**所示

tcsh code : set && setenv

1

2 3 45

6 78 9

1011

1213

1415

linux-r9f7 /home/myname> set 

vary

="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

1

23

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...