前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.profile中EXPORT变量的问题

.profile中EXPORT变量的问题

作者头像
bisal
发布2019-01-29 11:39:24
8920
发布2019-01-29 11:39:24
举报
文章被收录于专栏:bisal的个人杂货铺

昨天搭建Tuxedo环境时碰到一个问题,涉及到不同shell环境下变量的写法。

问题背景

操作系统版本是SunOS e2900i-t 5.9 Generic_122300-12 sun4u sparc SUNW,Netra-T12

创建用户后,向.profile中添加环境变量:

#for Tuxedo export TUX_HOME=/opt/app/tux;

...

重登陆时就报:

-sh export TUX_HOME=/opt/app/tux: is not an identifier

这样的错误。

有的帖子说:

1. .profile中"/bin/sh"修改为"/bin/ksh"即可,尝试后失败。

2. 将export TUX_HOME=/opt/app/tux;分为两行导出,即:

TUX_HOME=/opt/app/tux;

export TUX_HOME;

这样可以正常。

问题解决

既然上述2中的方法可以执行,说明可能还是因为不同的shell环境对于导出环境变量的语法要求不同。

1. 通过比对不同shell对导出环境变量的写法,发现export TUX_HOME=/opt/app/tux;当使用了bash的时候就正常,说明他是bash要求的格式。

2. 检查本机用户默认的shell:可以查询/etc/passwd文件。

tux:x:100059:1::/userhome/tux:/bin/sh

发现默认使用的是sh,将其改为bash,

3. 使用usermod -s /bin/bash tux命令,完成默认shell的修改。

再次登录,问题解决。

知识点1: useradd/usermod的参数含义:-c comment 指定一段注释性描述。 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用户组,用户组 指定用户所属的附加组。 -s Shell文件 指定用户的登录Shell。 -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。 知识点2: 使用bash时通常看需要使用的是.bash_profile这个用户文件,但这里用的是.profile。 "在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个,执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile"

因此这里我用的是.profile也可以。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014年10月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档