LinuxSir.cn,穿越时空的Linuxsir!

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

编写的shell程序如何直接输入程序名能自动执行

[复制链接]
发表于 2003-9-4 01:08:52 | 显示全部楼层 |阅读模式
rt
例如rt吧,
每次写完程序后总是用chmod u+x rt来给rt增加执行权限,然后用命令
./rt
执行rt
那怎么样进入目录直接输入
rt
就能执行程序了,

多谢
发表于 2003-9-4 01:30:38 | 显示全部楼层
我是这样作的,在/etc/profile文件中加入:
export PATH=${PATH}:~/myshell
export PATH=${PATH}:~/myperl
之后,运行一下:
. /etc/profile
这样我这两个目录中的脚本用chmod +x (这个步骤没必要省略的因为你要改了umask后比较麻烦,你的文件不都是脚本吧?!)后就可以直接输入文件名运行啦.
 楼主| 发表于 2003-9-4 02:14:05 | 显示全部楼层
版主讲的这些好象不直接进入目录就可以执行的,而我的进入目录也不能直接执行,
bash-2.05b# pwd
/home/shell
bash-2.05b# ls
2*        angelp*   love*     menu*     shell*    smartzip* study/    tower.sh*

bash-2.05b# menu
bash: menu: command not found
这个是怎么回事,

#vi menu
#!/usr/local/bin/bash
until
echo List Directory..........1
echo Change Directory........2
echo Edit File...............3
echo Remove File.............4
echo Exit Menu...............5

read choice
test $choice = 5
do
case $choice in
1) ls;;
2) echo Enter target directory
read dir
cd $dir
;;
3) echo Enter file name
read file
vi $file
;;
4) echo Enter file name
read file
rm $file
;;
q|Q|5) echo Goodbye;;
*) echo illegal Option
esac
done
发表于 2003-9-4 09:44:53 | 显示全部楼层
想要进入目录可以执行,可以把 . 放在PATH里。
export PATH=${PATH}:.
 楼主| 发表于 2003-9-4 13:41:17 | 显示全部楼层
用java兄的方法可以了,不过觉得有点奇怪
为什么加入path后可以直接执行,而没有加入path进入目录时不能直接执行,搞不懂,

多谢
 楼主| 发表于 2003-9-4 20:48:17 | 显示全部楼层
大家没有遇到这样的问题嘛,:ask :ask
发表于 2003-9-5 13:42:40 | 显示全部楼层

不要把当前目录名加入到$PATH中。

如果有心人把有问题的ls放到一个目录中的话,而我们进入了此目录,使用ls的时候,就会十分危险了……
发表于 2003-9-5 20:50:53 | 显示全部楼层

回复: 不要把当前目录名加入到$PATH中。

最初由 alphatan 发表
如果有心人把有问题的ls放到一个目录中的话,而我们进入了此目录,使用ls的时候,就会十分危险了……

不懂 ,有什么危险 ,请说说:ask
 楼主| 发表于 2003-9-6 01:00:05 | 显示全部楼层

回复: 不要把当前目录名加入到$PATH中。

最初由 alphatan 发表
如果有心人把有问题的ls放到一个目录中的话,而我们进入了此目录,使用ls的时候,就会十分危险了……


此处所指的一个目录是指指定的PATH,还是其他的任何一个目录,
如果是指定的PATH,是用户自己建立的,有权限阻止其他用户执行的,
如果是其他目录,好象进入其目录也不能直接执行其中的脚本吧,


那其危险性又何在呢,:ask :ask

thanks
发表于 2003-9-8 20:16:29 | 显示全部楼层
虽然不太明白各位讨论的问题是什么!
不过就偶想到的大家所以为的问题都在
ls
./ls
这两个命令的问题上吧???
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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