LinuxSir.cn,穿越时空的Linuxsir!

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

shell脚本的基础问题

[复制链接]
发表于 2004-8-11 10:46:27 | 显示全部楼层 |阅读模式
有两个脚本,名称都是sen,内容分别如下:
-----------------
export ZAB="zab"
ps
echo $ZAB
-----------------
#!/bin/bash
export ZAB="zab"
ps
echo $ZAB
-----------------
运行的结果,第一个脚本中的ps命令结果中看不到sen进程,而第二个却可以看到sen进程。我的理解是,第一个脚本在当前shell中执行,第二个脚本在新的shell中执行。
可是,执行完第一个脚本,echo $ZAB却是空值,说明ZAB环境变量没有设置,这是为什么呢?
发表于 2004-8-11 15:34:21 | 显示全部楼层
跟你执行脚本的方式有关,如果要在当前环境运行脚本文件的话
需要用dot命令,即:
. urscript
or
source urscript
是,执行完第一个脚本,echo $ZAB却是空值,说明ZAB环境变量没有设置,这是为什么呢

那是因为子shell中的变量是无法导入到父shell的,除非你用dot命令执行脚本
 楼主| 发表于 2004-8-11 16:13:26 | 显示全部楼层
多谢指点!
另外我记得有两个命令分别察看文本文件的前n行和末n行,是什么命令啊?
发表于 2004-8-11 16:23:17 | 显示全部楼层
最初由 easyrock 发表
多谢指点!
另外我记得有两个命令分别察看文本文件的前n行和末n行,是什么命令啊?

head和tail吧
 楼主| 发表于 2004-8-11 16:29:50 | 显示全部楼层
:2cool
 楼主| 发表于 2004-8-11 21:58:58 | 显示全部楼层
为什么php脚本也用bash解释呢?
php是不是像perl那样也是一种解释语言呢?
好象perl脚本会在第一行这样声明用perl解释器:
#!/usr/bin/perl
那么php是不是类似要这样呢:
#!/usr/bin/php
发表于 2004-8-11 22:21:42 | 显示全部楼层
他们都是解释型的脚本语言
btw:建议多浏览一下置顶的精华贴,以及:
http://www.linuxsir.cn/bbs/showthread.php?threadid=28945
 楼主| 发表于 2004-8-12 08:51:40 | 显示全部楼层
但是perl脚本是不是需要这样声明呢:
#!/usr/bin/perl
发表于 2004-8-12 11:34:18 | 显示全部楼层
是DI,具体的路径要看perl解释器在系统中实际的路径!
perl的讨论,请到相应的讨论区
http://www.linuxsir.cn/bbs/forumdisplay.php?forumid=77
 楼主| 发表于 2004-8-12 11:49:24 | 显示全部楼层
谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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