全局变量跟shell有关系吗
linux吧
全部回复
仅看楼主
level 11
就比如说,在.profile或.xprofile或.pam_environmen中定义的变量,在konsole的bash或csh或zsh中有效吗?
如果用bash export一个变量,在csh中有效吗?
2021年09月02日 17点09分 1
level 12
无效,猜的
2021年09月02日 23点09分 2
level 10
有效的,不过如果是bash export,好像会提醒export no such file or directory
2021年09月03日 00点09分 3
level 1
有很多命令比较注重环境变量,当你在shell里引用时建议先使用which查看一下,把命令的绝对路径写进去,或者在#!/bin/bash下面重置环境变量
2021年09月03日 02点09分 4
level 13
1、环境变量是进程私有属性;
2、进程启动时,由父进程给出 “初始环境变量值”,开发实践中,父进程通常会把自身当前的环境传递给子进程,如需要(比如考虑安全性),会过滤环境值;
3、进程运行中可以随时改变自身环境值,不影响其他进程的环境;
4、首个用户进程 init 的环境由内核给出;
5、查看procfs,比如 /proc/[pid]/environ,可以获得该进程启动时的初始环境值;
6、进程修改环境值后,不影响其初始环境值,就是说,修改完了 /proc/[pid]/environ 不会跟着变。
因此,
问:如果用 bash export 一个变量,在csh中有效吗?
答:当 export 会修改 bash 进程当前的环境值,任何在修改后直接或间接创建的子进程,原则上会继承前述 export 修改。但因进程有权决定子进程的初始环境值,所以前述修改存在被过滤的可能。
2021年09月03日 02点09分 5
小吧好厉害,养我[乖]
2021年09月03日 03点09分
level 14
养我,,,,,,profile和xprofile算是全局变量,但并不是实时生效的,,需要在次读取才生效,xprofile,是针对x下的,在tty下不生效,,另外konsole不是终端么,,,在profile和xprofile定义的变量,要看格式,bash和zsh跟csh不同,如果你用export定义变量,那么zsh不支持这个变量,将无效,,,,***ash export一个变量,你在放前进程开一个zsh或者csh进程,有效,开csh或者tcsh进程,因为不支持,所有无效,,另外,上面的不是重点,重点是,快点养老子
2021年09月03日 02点09分 6
在,bash export个变量,在当时进程下,开一个bash或者zsh,有效!!!,什么破输入法
2021年09月03日 02点09分
你好厉害,你养我[小乖]
2021年09月03日 03点09分
@一只馬鹿💦 加群,加老子的群,为啥不加
2021年09月03日 15点09分
@🎀🌸星不萌🌸🎀 不知道哪个群[小乖]
2021年09月11日 05点09分
level 7
没听过全局变量。环境变量,继承自父进程,再根据需要修改。shell 是否加载某文件,具体问题具体分析,看手册。
2021年09月11日 06点09分 7
1