藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月26日 11:18


請教:怎樣判斷一個系統環境變量是否存在

在shell中有像getenv這樣的函數嗎

請教:怎樣判斷一個系統環境變量是否存在

用shell的-n來判斷,例如判斷$SHELL是否存在
[code]
[[ -n $SHELL ]]&&echo exist||echo No exist[/code]

請教:怎樣判斷一個系統環境變量是否存在

謝謝寂寞烈火,你能告訴我為什麼要用兩個[[ .....]],用一個就不好使了,我試了.???

請教:怎樣判斷一個系統環境變量是否存在

請教:怎樣判斷一個系統環境變量是否存在

又長知識了

請教:怎樣判斷一個系統環境變量是否存在

謝謝~

請教:怎樣判斷一個系統環境變量是否存在

烈火兄,我看了那個代碼,想請教你一下
為什麼不能夠使用echo $SHELL來看時候存在呢?

我想是不是因為有null和unset兩種情況,因為在這樣的兩種情況下echo的結果是一樣的

但是[[ -n $SHELL ]]這個意思就是看看$SHELL是不是非空串,難道在null和unset兩種情況下,會出現不同的結果麼?

這個帖子題目的問題說系統變量是否存在,到底是說unset還是null,或者既是null也是unset

請教:怎樣判斷一個系統環境變量是否存在

-->
判斷到方法很多很多,:)

請教:怎樣判斷一個系統環境變量是否存在

烈火兄
能不能寫一個把null和unset可以分開的shell?
謝謝!

請教:怎樣判斷一個系統環境變量是否存在

注意,腳本必須用source或.命令在父SHELL裡運行
不然腳本得不到為export的變量

[code]#!/bin/bash
if set|egrep "^$1=">/dev/null
        then eval [ -z "\$$1" ] && echo null || eval echo "\$$1"
        else echo unset
fi[/code]

TEST

[code][root@bbhome test]# source ./testvar abc
123
[root@bbhome test]# abc=
[root@bbhome test]# source ./testvar abc
null
[root@bbhome test]# unset abc
[root@bbhome test]# source ./testvar abc
unset
[/code]

請教:怎樣判斷一個系統環境變量是否存在

env | grep '^VAR_NAME='



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com