【已经解决】请教一下大家,关于shell脚本执行的问题
本帖最后由 ulovko 于 2012-08-24 09:46 编辑学习shell脚本中,写了个例子 abc.sh
#!/bin/sh
echo hello world.
echo done!
保存后用chmod设置了权限
# chmod 755 abc.sh
权限更改成功
然后运行脚本居然不行,我这样运行的
# abc.sh
说找不到命令
网上找了一下,说要 加 ./
果然
# ./abc.sh
就能执行了,后来我还发现 只用 . 也可以
# . abc.sh
问题是,我想知道,有没有办法不用 ./ 或者 . 就能执行 shell脚本啊?
我现在是 root 权限,装了 bash 换成了 bash 也不能直接用文件名执行
网上不是说只要第一行 写了#!+执行程序路径 就可以直接运行了么? 保存后用chmod设置了权限
# chmod 755 abc.sh
该文件不在当前目录? 在当前目录,权限改成功了。
主要是不能 直接执行 非要
# sh abc.sh 或 # ./abc.sh 才行
高手支个招吧 没有加入当前用户的搜索目录。 请问你是说 /bin/sh 没有加入么?
如果是说这个,这个肯定是加入了的 楼主是windows的受害者之一。
从windows出来的人普遍不知道PATH的含义 我肯定是新手啊,不然也不会来麻烦大家了。
有没有老手高手骨玩能否详细说下,谢谢先 本帖最后由 ulovko 于 2012-08-23 11:33 编辑
回复 1# ckcfcc
> pwd
/usr/home/ko/bin
> echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/ko/bin
> ll echo.sh
-rwxr-xr-x1 koko- 22 08/23/12 11:14:16 echo.sh*
> cat echo.sh
#!/bin/sh
echo "AK47"
> rehash ---> 没有这个就需要注销(exit)才能生效
> echo
echo echo.sh echotc
> echo.sh
AK47
About rehash : # rehash (Updates FreeBSD's path environment variables)
<For instance when you have installed software you may not be able
to run the executables without specifying the path.
rehash solves your problem most of the times>FROM: http://bbs.chinaunix.net/thread-3751834-1-1.html
PS: 操作环境尽量保持在自己的家目录,否则请这样执行脚本 sh script.sh又或者:
(csh/tcsh)用户
# vim ~/.cshrc
set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin /path/to/scripts)
:wq
# source ~/.cshrc
(sh/bash)用户
# vim ~/.profile
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:$HOME/bin:/path/to/script; export PATH
:wq
# source ~/.profile
非常感谢 ulovko 大侠 问题又学到新东西了, 严重感谢
页:
[1]
2