首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >执行ksh脚本不会继承环境变量

执行ksh脚本不会继承环境变量
EN

Stack Overflow用户
提问于 2020-12-12 17:04:26
回答 1查看 133关注 0票数 0

我正在尝试运行一个简单的shell ( Centos 7),它输出系统主机名变量:

test.sh

代码语言:javascript
运行
复制
#!/bin/ksh
echo "HOSTNAME:"$HOSTNAME

从bash或ksh执行时,shell不会按预期工作

代码语言:javascript
运行
复制
>ksh ./test.sh ----> HOSTNAME is unset
>./test.sh ----> HOSTNAME is unset

如果我创建了一个声明并导出主机名~/.profile,则不会发生任何更改。如果我创建了一个~./ ksh,那么只有当我从bash切换到ksh并执行脚本时,源~./配置文件才能工作。

如果我从bash运行以下代码,由于交互模式,它可以正常工作

代码语言:javascript
运行
复制
ksh -xi ./test.sh

+ command . ./.profile
+ HOSTNAME=<MYNAME>
+ export HOSTNAME
+ export HOSTNAME
+ echo HOSTNAME:<MYNAME>
HOSTNAME:<MYNAME>

如果没有交互模式,~/.profile将不会加载

代码语言:javascript
运行
复制
+ echo HOSTNAME:
HOSTNAME:

即使在ksh中,我也需要设置原始主机名,因为有一堆脚本使用主机名变量

PS:我尝试打印PATH变量,即使主机名不起作用,它也能正常工作

你能给我一些建议吗?

EN

回答 1

Stack Overflow用户

发布于 2020-12-12 21:38:30

当我把

代码语言:javascript
运行
复制
HOSTNAME=$(cat /etc/hostname)
export HOSTNAME

在我的.kshrc中-如果你没有它,创建它,我让它工作,并能够

代码语言:javascript
运行
复制
echo $HOSTNAME
server
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65263234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档