LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: redspider

入门问题

[复制链接]
发表于 2004-3-27 11:24:05 | 显示全部楼层
你所说的“直接运行”是什么意思?
是否指./foo不是直接运行,而foo才是直接运行?
 楼主| 发表于 2004-3-27 12:12:11 | 显示全部楼层
不是这个意思,我的问题是:
为什么“shell脚本”不需要在系统设置脚本所在的路径,
而“perl脚本”需要在/etc/profile里设置脚本所在的路径。
发表于 2004-3-27 12:23:57 | 显示全部楼层
只要用一个shell解释脚本就可以了。
sh script.sh
用sh SHELL 解释script.sh.
./script.sh
中的.就是指当前shell

perl也是这样,文件中的#!/usr/bin/perl已经说明了执行这个文件的路径,缺少一个shell去执行它,其他的编程语言也一样。
发表于 2004-3-27 12:34:36 | 显示全部楼层
终于看明白了
你的意思是shell不需要加#!/bin/sh,直接用./foo.sh就可以
但是perl一定要加#!/usr/bin/perl吧。

正如home所说,./foo.sh就是用当前user shell,现在是bash就是/bin/bash,是csh就是/bin/csh,是sh就是/bin/sh
发表于 2004-3-27 13:06:41 | 显示全部楼层
有点糊涂@@@@,楼主自己多试几次吧。。要#!/bin/bash,不要#!/bin/bash...还有使用命令的格式,./script.sh ./script.pl ,...sh script.sh , perl script.pl
但不能这样:
sh script.pl

以.pl做后缀的意思是这是个perl脚本。
以.sh做后缀的意思是这是个shell脚本。
 楼主| 发表于 2004-3-27 14:27:57 | 显示全部楼层
呵呵,谢谢大家,看来我的表达能力确实太差了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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