Tcl 스크립트에서 쉘 환경 변수를 읽는 방법. 아무도 도와주세요. 나는 TCL에서 아주 새롭다.TCL에서 Bash 환경 변수 읽기
답변
$::env
을 사용하면 모든 환경 변수에 액세스 할 수 있습니다. 액세스 할 수 TMP 환경 변수가이 작업을 수행 : 여기
set tmpdir $::env(TMP)
더 많은 정보 http://wiki.tcl.tk/1624
$ export var=42
$ tclsh
% puts $env(var)
42
TMP 환경 변수는 bash 스크립트에서 정의됩니다. 그래서 내가하고 싶은 것은 tcl의 환경 변수에 접근하는 것이다. 내 tcl 프롬프트는 %입니다. 그래서 마침내 tcl의 환경 변수에 액세스하려고합니다. –
TMP 환경 변수는 $ env (TMP)입니다. **하지만 ** : tash 스크립트가 bash 스크립트에서 호출 되었습니까? 변수는 전역 변수입니까 (예 : 내보내기)? – hynek
예. 잘 작동합니다. 하지만 내 질문은 환경 변수가 bash 또는 쉘 스크립트에서 정의 된 것이고 tcl의 proc을 사용하여 액세스하려는 것입니다. 그러니 제발 ........ –
환경 변수를 통해 액세스 할 수있는 내장 전역 변수 env
(정규화 된이 ::env
입니다). 이것을 다른 Tcl 배열처럼 사용하십시오. 예를 들어, 다른 배열처럼 사용하는 단 하나의 변수에 액세스 물론
proc dump_env_vars {} {
foreach name [array names ::env] {
puts "$name == $::env($name)"
}
}
, : 모든 환경 변수의 목록을 인쇄하려면
은이 같은 것을 사용할 수 있습니다
을 자세한 내용은puts "HOME = '$::env(HOME)'"
예, 프로 시저가 실행되면 모든 환경 변수가 제공됩니다. 괜찮아. 그러나 내가 여기서 묻고있는 것. ORACLE_SID = DBTEST ORACLE_HOME =/opt/oracle/product/102 export ORACLE_SID ORACLE_HOME 이제 사용자가 정의한 환경 변수에 액세스하기 위해 tcl에 proc을 작성하려고합니다. 그래서 어떻게해야합니까? 제발 .......... –
나는 또한 링크를 읽었습니다. 하지만 내 요구 사항과 일치하지 않습니다. –
환경 변수를 덤프 할 때'parray env' 만 사용합니다. –
the env section of the tclvars man page은 Tcl의 스크립트에서 쉘 환경 변수를 읽으려면 참조 이이 방식으로도 표현 될 수
global env
set olddisplay $env(DISPLAY)
set env(DISPLAY) unix:0
:
set olddisplay $::env(DISPLAY)
set ::env(DISPLAY) unix:0
을 약 global
을 잊지 같은 일을하려고합니다.
당신은 변수가 같은 것을 수행하여 존재하는지 확인할 수 있습니다
는if {[info exists env(VARNAME)]} {
# okay, it's there, use it
set value $env(VARNAME)
} else {
# the environment var isn't set, use a default
set value "the default value"
}
이 source입니다.
- 1. web.config에서 환경 변수 읽기
- 2. BASH SCRIPT, 환경 변수 및 PID
- 3. Bash 환경 변수 및 설치 디렉토리 찾기
- 4. 텍스트 파일의 환경 변수 읽기/실행
- 5. Windows의 파일에서 환경 변수 읽기 (cmd.exe)
- 6. TCL에서 Blowfish를 사용하는 기본 매개 변수
- 7. 쉘 스크립트의 전역 환경 변수
- 8. 환경 변수
- 9. hudson에서 빌드하기위한 환경 변수 설정
- 10. Bash 변수 범위
- 11. bash 설정 변수 생성
- 12. bash 스크립트의 명령으로서의 변수
- 13. 지저분한 bash 변수
- 14. Bash 매개 변수 참조
- 15. bash 변수 재평가
- 16. 파일에 Bash 쓰기 (변수?)
- 17. 외부 파일에서 Bash 읽기 배열
- 18. TCL에서 글로벌 키워드 사용
- 19. PHP의 사용자 환경 변수
- 20. dcc32 : * .cfg의 환경 변수
- 21. LaunchDaemons 및 환경 변수
- 22. 환경 변수 언어가 특정입니까?
- 23. MSBuild 필수 환경 변수
- 24. 리눅스에서의 Python 환경 변수
- 25. Eclipse 환경 변수
- 26. Ruby 환경 변수
- 27. 어셈블러에서 환경 변수 찾기
- 28. 아파치 환경 변수 설정
- 29. C에서 환경 변수 설정
- 30. Mathematica에서 환경 변수 설정
그냥 코드를 작성하고 실행하십시오. 그러나 나는 얻지 않는다. 나는 tclsh 프롬프트에있다. 내 프롬프트는 %입니다. 그래서 나는 단지 프롬프트에서 % tmpdir $ :: env (TMP)를 입력했을뿐입니다. 출력은 ":: env (TMP)"를 읽을 수없는 것과 같습니다 : 그런 변수가 없습니다. –
사실 저는 proc를 쓰고 싶습니다. 배시 환경 변수 값을 반환하는 tcl입니다. –
TMP라는 환경 변수가 없기 때문입니다. 내가 준 링크를 읽었 니? – TrojanName