LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 857|回复: 5

求助:我写的bash script没有任何反应

[复制链接]
发表于 2006-10-27 15:35:49 | 显示全部楼层 |阅读模式
我装的是gentoo,自己写的bash script执行后没有任何反应,如
文件名:test
内容:
#!/bin/bash
echo $PS1

然后改permission为 -rwxr-xr-x

执行后出现一个空白行,用bash test也不行,不知道如何解决!
发表于 2006-10-27 16:54:47 | 显示全部楼层
在你系统里,用户的.bashrc里加上export PS1="[\u@InfoSec \W]\\$ "
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-27 17:49:20 | 显示全部楼层
我不是这个意思,我试举个例子来说明执行script没有效果,
在命令行下一切正常,当然PS1也是有定义的,

我在test中写:
#!/bin/bash
xxx=1
yyy=2
export xxx
export yyy

该了文件权限执行后,在命令行中用echo $xxx, echo $yyy都是空白,既没有定义
回复 支持 反对

使用道具 举报

发表于 2006-10-27 21:45:02 | 显示全部楼层
又是一个企图从子进程改变父进程的东西的家伙
  1. source test
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-28 13:23:14 | 显示全部楼层
我有点明白
那自己写的script怎么办,不是总source吧?
那样的话,就没有执行的意义了

我并无意用此script来改变bash中的环境变量,test执行结束后里面的变量无效是没关系的,只是为何在执行过程中echo都不行?

还有,用source的话应该是不用在首行加#!/bin/bash的吧

以下代码是正确执行的:

#!/bin/bash
rm xxx

它删除了本目录下的xxx文件

有点问题:huan兄说的父进程应该是提示符表示的bash吧,子进程是执行时内存中的test,
echo PS1 不显示什么难道是应为这个子进程没有继承父进程中的变量?为什么
还有 我在test中 定义xxx=1 然后 export xxx 应该是将结果输出到stdout ,这和父进程没有关系把,“企图从子进程改变父进程的东西”, 改变了父进程的什么东西?

清高手指教!:》
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-28 13:59:08 | 显示全部楼层
不好意思,我试了PATH,SHELL,PWD等都可以被echo显示,只有PS1,PS2不能,不知道他们之间有区别马?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表