LinuxSir.cn,穿越时空的Linuxsir!

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

shell脚本可否直接运行

[复制链接]
发表于 2007-1-8 12:08:50 | 显示全部楼层 |阅读模式
有很多shell脚本,会互相调用。格式如:#/bin/bash
........
cd somedir
shellname
我在终端直接输入shell名提示command not found ,使用 sh shellname运行正常,问题是这么多文件如何让它们自动完成这些操作呢?
总不能让我把所有shellname都改成sh shellname吧?
问有没有办法设置了终端root:shellname就正常运行呢?
发表于 2007-1-8 13:25:03 | 显示全部楼层
  1. $echo 'export PATH=$PATH:somedir/' >> ~/.bashrc
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-1-8 15:01:55 | 显示全部楼层
也可以把要运行的脚本放到/bin或/sbin里面,直接输入脚本名字就可以了!
回复 支持 反对

使用道具 举报

发表于 2007-1-8 15:21:50 | 显示全部楼层
你的问题可能是由于没有把脚本设置为可执行权限
chmod +x shellname
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-8 16:35:32 | 显示全部楼层
好像不是权限的问题,设置过也没用。
文件太多,不可能都放到/bin下面,而且他们主要出来在某工程源码中,不好随便挪动的。
回复 支持 反对

使用道具 举报

发表于 2007-1-8 16:44:56 | 显示全部楼层
#/bin/bash
........
cd somedir
shellname

应该是
#!/bin/bash吧
回复 支持 反对

使用道具 举报

发表于 2007-1-8 16:47:39 | 显示全部楼层
哦,明白你那个是怎么回事了
你应该输入shellname的绝对路径
如果在当前目录下就是./shellname
你试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-9 08:03:42 | 显示全部楼层

但是问题在于我不能./

Post by Iambitious
哦,明白你那个是怎么回事了
你应该输入shellname的绝对路径
如果在当前目录下就是./shellname
你试试。


但是问题在于我不能使用./shellname,
我碰到这个麻烦是在某工程源码中,它里边有很多相互调用的shell,其格式大致是
#!/bin/bash
somesentence
someshellname /*没有./*/
我就是不想找到所有shell脚本中的shellname一一替换为./shellname才来求助的
请问有什么办法在bash中直接输入shellname后。使它首先当作bash脚本被处理吗
回复 支持 反对

使用道具 举报

发表于 2007-1-9 09:11:51 | 显示全部楼层
oh,那我就只知道一个办法了,就是把这些脚本程序所在的目录设置为系统目录就可以了。
回复 支持 反对

使用道具 举报

发表于 2007-1-9 09:55:36 | 显示全部楼层
系统执行命令都是在$PARH中寻找匹配,如果没有就报错为command not found 因此你只需要在$PATH中添加上当前路径  . 即可
但是您的系统就很不安全了
回复 支持 反对

使用道具 举报

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

本版积分规则

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