pstree 命令,若没有pstree命令可用yum install -y psmisc 进行安装
再pstree命令输出中进行查找bash字段,若如:sshd───sshd───bash───pstree 则表示父shell
若出现两个bash 则表示子shell 中 如:sshd───sshd───bash───bash───pstree
但是删除只能在定义该变量的Bash下删除
需要安装一下:
#On Mac OS
brew install pstree
#On Fedora/Red Hat/CentOS
yum install psmisc #using psmisc package for pstree
#On Ubuntu/Debian APT
apt-get install psmisc
把shell.sh里的内容贴出来看下
我也是这样,不知道怎么回事
具体情况不清楚,查了些资料希望有帮助https://blog.csdn.net/dgj8300/article/details/51045797
另外,很多问题不只我们自己会遇到,出现意料之外的情况的时候及时在网上查找信息一般都会解决问题哒,要善于利用工具,毕竟编程本身也是工具而已
很简单,因为PS1是本地变量,env只能看到环境变量,看不到本地变量,用set可以看到所有变量
百度office
当用exit离开子shell时,该子shell应该就会被销毁,当然也包括子shell中定义的变量。
而所谓的“回到子shell”,是创建一个新的子shell,而原来的子shell应该是被销毁不存在了
./ 代表了你的当前目录下的hello.sh , 所以liunx就通过这个路径来执行这个可执行文件,至于PATH 不慎小,你是否忘记了加分号,或者格式不正确
是的,按照PATH的值,一个一个往下找,只要找到就执行,如果下面还有这条命令,没办法不能执行。
有啊,换个浏览器试试?
你是用的Linux版本是CentOS7 吗? CentOS7 使用set命令后,显示就是这样的
是误加了。
可以的
米刀文已经给出了一种解释:“因为set的输出很长,可以使用set | more命令查看”。出来的东西,前面的内容一样,后面的就是这些函数代码了。可能是内核版本的关系。
因为set的输出很长,可以使用set | more命令查看
set命令显示当前shell的变量,包括当前用户的变量; env命令显示当前用户的变量; PS1是shell变量吧
因为set的输出很长,可以使用set | more命令查看
centos 6 set 也会有函数出来 这很正常吧
视频里不能删,应该是他写错了. 他之前写成了unset $变量名,带$符不管在哪哥bash都删除不了,在他切到父bash的时候没带$符了所以删除了。
老师讲的很清晰啊,哪里不懂了?
删除变量不需要加$,在子shell中删除父shell定义的环境变量可以删除,但是exit回到父shell该变量依然存在
可以,利用管道,set | more
嗯,老师在视频里一开始删除的时候是写成带$的了,其他同学可以写出自己的运行结果,咱们一起来验证一下!