.profile中EXPORT变量的问题
来源:互联网 发布:魔兽世界老版本数据库 编辑:程序博客网 时间:2024/06/05 17:45
昨天搭建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也可以。
- .profile中EXPORT变量的问题
- js中export的问题
- shell export的变量在python中使用
- makefile 的export问题
- makefile 的export问题
- export /etc/profile
- Bash中运行脚本,export变量
- Linux中export 命令及LD_LIBRARY_PATH 变量
- 对set/env/export/declare和profile的理解
- 【已解决】一个makefile中export出来的变量在另外一个makefile中无法访问
- 一个makefile中export出来的变量在另外一个makefile中无法访问
- linux shell 的变量问题 &&export 语句作用 &&su 与 su - 的区别
- 环境变量和export的命令--shell进程的变量可见域问题
- linux的export命令和profile,.bashrc,bash.profile各种环境变量文件
- shell export变量的作用范围
- linux变量 set env export的区别
- linux 中 set,env,export,declare显示shell变量的区别
- linux 中 set,env,export,declare显示shell变量的区别
- 假期潜行,减法优化夺优位
- JNI开发的一个简单Demo
- socket编程---之单连接服务端实现
- C#中的延时函数积累
- UVA_1368 - DNA Consensus String
- .profile中EXPORT变量的问题
- Poll模型
- JAVA,代码雨
- UnrealEngine4编码风格的思考
- 1.1 斐波那契
- Linux下进程概述
- YII下数据库的备份与还原
- init.d,rc.d详解 Linux运行时详解
- php异常和错误处理