TCL特殊变量env遍历以及操作
TCL
有个特殊变量叫做env
,用来保存环境变量的数据。
网上有提供输出此环境变量的方法,但是存在一定的局限性,下面提供了一种方法,输出env
的键值对
#!/usr/bin/tclshforeach key [array names env] {puts "key: $key, value: $env($key)"
}
puts "env size: [array size env]"
puts "LANG: $env(LANG)"
打印输出为:
fh@Feihu-3 learn % ./array.tcl
key: VSCODE_GIT_ASKPASS_MAIN, value: /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js
key: VSCODE_GIT_ASKPASS_NODE, value: /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer)
key: HOMEBREW_BOTTLE_DOMAIN, value: https://mirrors.ustc.edu.cn/homebrew-bottles
key: HOME, value: /Users/fh
key: LANG, value: zh_CN.UTF-8
key: PWD, value: /Users/fh/fh_data/workspace/tcl/learn
key: COMMAND_MODE, value: unix2003
key: LOGNAME, value: fh
key: XPC_SERVICE_NAME, value: 0
key: SSH_AUTH_SOCK, value: /private/tmp/com.apple.launchd.jUsrReVWLO/Listeners
key: COLORTERM, value: truecolor
key: TERM_PROGRAM, value: vscode
key: __CF_USER_TEXT_ENCODING, value: 0x1F5:0x19:0x34
key: XPC_FLAGS, value: 0x0
key: TERM, value: xterm-256color
key: SHELL, value: /bin/zsh
key: TMPDIR, value: /var/folders/8m/dwtpjrx55ks5tbh3x08ln6wh0000gn/T/
key: GIT_ASKPASS, value: /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh
key: SHLVL, value: 1
key: OLDPWD, value: /Users/fh
key: ORIGINAL_XDG_CURRENT_DESKTOP, value: undefined
key: TERM_PROGRAM_VERSION, value: 1.61.1
key: __CFBundleIdentifier, value: com.microsoft.VSCode
key: VSCODE_GIT_IPC_HANDLE, value: /var/folders/8m/dwtpjrx55ks5tbh3x08ln6wh0000gn/T/vscode-git-0c84f9610c.sock
key: PATH, value: /Users/fh/Library/Python/2.7/bin:/usr/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS:/Users/fh/Library/Python/2.7/bin:/usr/local/sbin
key: _, value: /Users/fh/fh_data/workspace/tcl/learn/./array.tcl
key: USER, value: fh
env size: 27
LANG: zh_CN.UTF-8
fh@Feihu-3 learn %
最后参考,网上打印env
的方法:
#!/usr/bin/tclsh
puts "-----------------------------------------------"
puts [array get env]
puts "-----------------------------------------------"
parray env
fh@Feihu-3 learn % ./array.tcl
-----------------------------------------------
VSCODE_GIT_ASKPASS_MAIN {/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js} VSCODE_GIT_ASKPASS_NODE {/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer)} HOMEBREW_BOTTLE_DOMAIN https://mirrors.ustc.edu.cn/homebrew-bottles HOME /Users/fh LANG zh_CN.UTF-8 PWD /Users/fh/fh_data/workspace/tcl/learn COMMAND_MODE unix2003 LOGNAME fh XPC_SERVICE_NAME 0 SSH_AUTH_SOCK /private/tmp/com.apple.launchd.jUsrReVWLO/Listeners COLORTERM truecolor TERM_PROGRAM vscode __CF_USER_TEXT_ENCODING 0x1F5:0x19:0x34 XPC_FLAGS 0x0 TERM xterm-256color SHELL /bin/zsh TMPDIR /var/folders/8m/dwtpjrx55ks5tbh3x08ln6wh0000gn/T/ GIT_ASKPASS {/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh} SHLVL 1 OLDPWD /Users/fh ORIGINAL_XDG_CURRENT_DESKTOP undefined TERM_PROGRAM_VERSION 1.61.1 __CFBundleIdentifier com.microsoft.VSCode VSCODE_GIT_IPC_HANDLE /var/folders/8m/dwtpjrx55ks5tbh3x08ln6wh0000gn/T/vscode-git-0c84f9610c.sock PATH /Users/fh/Library/Python/2.7/bin:/usr/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS:/Users/fh/Library/Python/2.7/bin:/usr/local/sbin _ /Users/fh/fh_data/workspace/tcl/learn/./array.tcl USER fh
-----------------------------------------------
env(COLORTERM) = truecolor
env(COMMAND_MODE) = unix2003
env(GIT_ASKPASS) = /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh
env(HOME) = /Users/fh
env(HOMEBREW_BOTTLE_DOMAIN) = https://mirrors.ustc.edu.cn/homebrew-bottles
env(LANG) = zh_CN.UTF-8
env(LOGNAME) = fh
env(OLDPWD) = /Users/fh
env(ORIGINAL_XDG_CURRENT_DESKTOP) = undefined
env(PATH) = /Users/fh/Library/Python/2.7/bin:/usr/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS:/Users/fh/Library/Python/2.7/bin:/usr/local/sbin
env(PWD) = /Users/fh/fh_data/workspace/tcl/learn
env(SHELL) = /bin/zsh
env(SHLVL) = 1
env(SSH_AUTH_SOCK) = /private/tmp/com.apple.launchd.jUsrReVWLO/Listeners
env(TERM) = xterm-256color
env(TERM_PROGRAM) = vscode
env(TERM_PROGRAM_VERSION) = 1.61.1
env(TMPDIR) = /var/folders/8m/dwtpjrx55ks5tbh3x08ln6wh0000gn/T/
env(USER) = fh
env(VSCODE_GIT_ASKPASS_MAIN) = /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js
env(VSCODE_GIT_ASKPASS_NODE) = /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer)
env(VSCODE_GIT_IPC_HANDLE) = /var/folders/8m/dwtpjrx55ks5tbh3x08ln6wh0000gn/T/vscode-git-0c84f9610c.sock
env(XPC_FLAGS) = 0x0
env(XPC_SERVICE_NAME) = 0
env(_) = /Users/fh/fh_data/workspace/tcl/learn/./array.tcl
env(__CFBundleIdentifier) = com.microsoft.VSCode
env(__CF_USER_TEXT_ENCODING) = 0x1F5:0x19:0x34
fh@Feihu-3 learn %
从上可知,使用parray
和[array get env]
方法适合调试,但是在使用上存在一定局限性。
TCL特殊变量env遍历以及操作相关推荐
- PHP对数组的高级遍历和操作处理方法
PHP对数组的处理可以称为该语言最有吸引力的特性之一,它支持70多种数组相关的函数.不论你想翻转一个数组.判断某个值在数组中是否存在.将数组转换成一个字符串还是计算数组的大小,仅仅执行一个现有的函数就 ...
- 如何修改uboot的环境变量env的值来指定uImage的名字
今天继续玩基于uboot的nfs.昨天总算是基本搞清了make zImage和make uImage的区别,那么今天就来实际编译几个玩一玩. 不过,在利用mkimage工具对zImage镜像文件加工完 ...
- json tcl_确定TCL中变量的类型
Tcl的变量没有类型(除了他们是否真的变量的关联数组 - 即使用$foo(bar)语法 - FO r你使用array exists)但Tcl的值.好吧,有点. Tcl可以在不同类型之间进行变异,因为它 ...
- TCL中变量嵌套使用
TCL中变量嵌套使用 在使用多重嵌套变量时候,因为 {} 对于tcl来说属于非运算符号,因此在使用变量嵌套,直接调用会出现问题 即变量不能正确调用: set mm_list "0 1&quo ...
- php mysql 变量赋值_mysql存储过程中变量的定义赋值操作
一.变量的定义 mysql中变量定义用declare来定义一局部变量,该变量的使用范围只能在begin...end 块中使用,变量必须定义在复合语句的开头,并且是在其它语句之前,也可以同时申明多个变量 ...
- Linux环境变量getenv setenv unsetenv操作
Linux环境变量getenv setenv unsetenv操作 在linux操作系统中,可以通过man来进行相关函数的查看 eg: man setenv 1.setenv 设置环境变量 //函数原 ...
- 豪斯曼检验matlab,面板工具变量与内生性操作及应用(固定随机、豪斯曼检验、过度识别检验、预测等)...
原标题:面板工具变量与内生性操作及应用(固定随机.豪斯曼检验.过度识别检验.预测等)
- 读取以下4位同学的成绩并用一个数据框变量pd保存。对数据框变量pd进行切片操作,分别获得小红、张明、小江、小李的各科成绩,它们是4个数据框变量,分别记为pd1、pd2、pd3、pd4
(1) 读取以下4位同学的成绩并用一个数据框变量pd保存,其中成绩保存在一个TXT文件中 import pandas as pd import numpy as np pd=pd.read_table ...
- python变量赋值如何定义操作
python变量赋值如何定义操作 变量定义方法很简单: x = 5 这个操作过程就是赋值,意思把整型数字5赋值给了变量x,用等号来连接变量名和值.之后就可以在表达式中使用这个新变量了. x * 3 1 ...
最新文章
- 【翻译自mos文章】怎么正确的计算一个ip地址的subnet id?
- java form 上传文件_form java springmvc怎么上传文件
- mysql jpa 批注 视图_通过JPA注解映射视图的实体类 jpa 视图 无主键 @Query注解的用法(Spring Data JPA) jpa 使用sql语句...
- Arduino笔记-呼吸流水灯
- HBASE整合ldap权限管理
- 电闹上赠么使用计算机,计算器怎么算n次方 怎么用电脑计算器算次方
- 就等android了
- 【转】我应该直接学Swift还是Objective-C?
- python星号倒金字塔结构_Python语言应用2020智慧树章节测试答案
- 分布式密钥管理Nucypher
- atmega128 单片机 密码锁 PROTEUS 仿真
- VS2013_CodeLens
- 成功三步曲:有勇、有谋、有德
- 快递系统java实验报告_java模拟物流快递系统程序.doc
- 自监督:对比学习contrastive learning
- 网络口碑推广主要目的全知道
- 搜狗输入法原先能在word中输入中文,现在不行。
- java写满天繁星,描写满天繁星唯美句子
- 10度角的三角函数计算(续)
- Web前端:什么是前端框架?