变量在?/ .bashrc中设置并在shellscript中访问它们
发布时间:2020-12-15 22:08:28 所属栏目:安全 来源:网络整理
导读:在返回非交互式 shell之前,我在.bashrc的顶部有这个 FOO="BAR"; export FOOecho "HELLO WORLD"# If not running interactively,don't do anything[ -z "$PS1" ] return 我在我的homedirectory中有一个脚本test.sh: #!/bin/bashecho "A"echo $FOOecho "B" 我
在返回非交互式
shell之前,我在.bashrc的顶部有这个
FOO="BAR"; export FOO echo "HELLO WORLD" # If not running interactively,don't do anything [ -z "$PS1" ] && return 我在我的homedirectory中有一个脚本test.sh: #!/bin/bash echo "A" echo $FOO echo "B" 我执行test.sh.输出: A B 2个问题: >为什么我看不到$FOO的价值? 编辑:我认为#!/ bin / bash的脚本会触发一个子shell,它会再次调用.bashrc,我错了吗? 编辑:即使我从其他主机调用脚本,我也看不到任何值.即使这样,.bashrc也会执行??? ssh remotehost "/home/username/test.sh" 解决方法
.bashrc仅为非登录交互式shell自动获取.通常,你会放. .bashrc靠近.bash_login文件的开头,以确保.bashrc来源于登录和非登录交互式shell.
.bashrc不会自动为非交互式shell提供源代码,例如在执行shell脚本时启动的shell. 由于您从.bashrc导出FOO,因此test.sh看到FOO具有空值的事实告诉我您正在从登录shell运行脚本.从提示打印BAR回显$FOO?如果确实如此,我会感到惊讶,而test.sh却没有. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |