我正在尝试运行一个简单的shell ( Centos 7),它输出系统主机名变量:
test.sh
#!/bin/ksh
echo "HOSTNAME:"$HOSTNAME从bash或ksh执行时,shell不会按预期工作
>ksh ./test.sh ----> HOSTNAME is unset
>./test.sh ----> HOSTNAME is unset如果我创建了一个声明并导出主机名~/.profile,则不会发生任何更改。如果我创建了一个~./ ksh,那么只有当我从bash切换到ksh并执行脚本时,源~./配置文件才能工作。
如果我从bash运行以下代码,由于交互模式,它可以正常工作
ksh -xi ./test.sh
+ command . ./.profile
+ HOSTNAME=<MYNAME>
+ export HOSTNAME
+ export HOSTNAME
+ echo HOSTNAME:<MYNAME>
HOSTNAME:<MYNAME>如果没有交互模式,~/.profile将不会加载
+ echo HOSTNAME:
HOSTNAME:即使在ksh中,我也需要设置原始主机名,因为有一堆脚本使用主机名变量
PS:我尝试打印PATH变量,即使主机名不起作用,它也能正常工作
你能给我一些建议吗?
发布于 2020-12-12 21:38:30
当我把
HOSTNAME=$(cat /etc/hostname)
export HOSTNAME在我的.kshrc中-如果你没有它,创建它,我让它工作,并能够
echo $HOSTNAME
serverhttps://stackoverflow.com/questions/65263234
复制相似问题