登录一个系统 setenv 还是 export 呢?把可能用的命令都试一遍这样能快速解决问题。。。用时间长了感觉有点乱 整理一下
1. 查看linux 当前 shell 类型
下面两个命令一样,为什么呢?因为当你进入linux 系统,你就使用了第一个命令-shell!
/> echo $0
/usr/bin/tcsh
>echo $SHELL
/usr/bin/tcsh
/>ps
PID TTY TIME CMD
10965 pts/2 00:00:00 tcsh
11055 pts/2 00:00:00 tcsh
12319 pts/2 00:00:00 tcsh
14212 pts/2 00:00:00 ps
2. shell 所有类型
>cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
/bin/rksh
3. it is csh not bsh so use setenv not export
setenv ENVNAME vall
if bsh use exprot ENVNAME=val
4. plus:
- ./*.sh = sh ./*.sh = bash ./*.sh ==>重新启动一个子shell,在子shell中执行此脚本。
- source ./*.sh = . ./*.sh ==>在当前shell进程中执行此脚本,而不是重新启动一个shell
- 没有被export导出的变量(即非环境变量)是不能被子shell继承的
与人玫瑰-手有余香