请教shell脚本运行的问题

yueyuezai 2012-12-19 10:12:39
1.test $?shell = 1
不明白$?shell是什么意思

2.在bash里执行soruce test_script 可以正确运行,但执行bash test_script 却无法生效,还有把source test_script 加入到.profile也无法生效

望高手解惑
...全文
196 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yueyuezai 2012-12-24
  • 打赏
  • 举报
回复
up 下
yueyuezai 2012-12-21
  • 打赏
  • 举报
回复
test $?shell = 1 && set uname=`uname` test $?shell = 1 && test $uname = "SunOS" && set platform="solaris-sparc" test $?shell = 1 && test $uname = "Linux" && set platform="linux-pentium" test $?shell = 1 && test $uname = "HP-UX" && set platform="hpux-hppa"
引用 5 楼 ljc007 的回复:
引用 4 楼 yueyuezai 的回复:对于第一个问题,我看那个脚本是用来判断当前系统环境的,比如是sunos还是linux还是HP-unix.是不是跟系统有关,我是在arm的编译工具里看到的 完整代码贴出来看看?
ljc007 2012-12-20
  • 打赏
  • 举报
回复
引用 4 楼 yueyuezai 的回复:
对于第一个问题,我看那个脚本是用来判断当前系统环境的,比如是sunos还是linux还是HP-unix.是不是跟系统有关,我是在arm的编译工具里看到的
完整代码贴出来看看?
RedWolf1999 2012-12-19
  • 打赏
  • 举报
回复
$?shell应该是把$?的值与字符串shell连接起来开成一个字符串,但这里与1比较的话应该是永远不成立的,我有点想不明白。。
帅得不敢出门 2012-12-19
  • 打赏
  • 举报
回复
$? 前一个命令的返回值. 2. 放在运行脚本中source是没有问题的. 其环境只有在profile被执行后才会生效. 请确保你test_script路径是对的.
沭水河畔 2012-12-19
  • 打赏
  • 举报
回复
第1个问题,不太明白,应该要看上下文。test是测试Shell中表达式的。 关于第2个问题,属于sh和bash的区别。可以参考下文: http://hi.baidu.com/aaronike/item/08cfca8ab2ca145d850fabd3
yueyuezai 2012-12-19
  • 打赏
  • 举报
回复
谢谢以上各位, 对于第二个问题,如果我把.profile 里面的 source test_script 改成 . test_script, 登出后再登录就可以了。不过不清楚这两有什么区别,另外我装的是ubuntu 12.04, 看了下/bin/sh 指的是dash。 对于我说的bash 执行没有生效,我是通过看环境变量来判断的,是不是我用bash或者dash执行完的时候这个环境变量已经失效了。我试了下,好像是这样 对于第一个问题,我看那个脚本是用来判断当前系统环境的,比如是sunos还是linux还是HP-unix.是不是跟系统有关,我是在arm的编译工具里看到的

2,161

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 UNIX文化
社区管理员
  • UNIX文化社区
  • 文天大人
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧