发布网友
共2个回答
热心网友
单独敲命令进去
shell
默认是自系统的环境变量path所指定的目录寻找可执行程序的,所以执行不了的原因如果去除你的文件编辑不对(比如有可能存在全角半角字符集之类的问题)或增加权限不对之类原因的话就是你的sh文件不再path指定的目录里得原因。比如启动的init文件都是可执行,但不在path,所以你不会直接敲名字就能直接执行那文件,如果能执行系统得有多少命令啊。
*******
引自景1修改
$
chmod
+x
whogrep.sh
$
./whogrep
********
上面命令如果能执行说明你文件没问题,但是得总是输入你sh文件所在目录。
如果你是想重复使用这命令的话,方式有两个:
1.将你sh文件所在目录加到path目录里。具体参考export
命令,注意一般是是root下
export
path=$path;你的文件目录,
这样里面"path=$path:"
是不可缺少的,不然会清空你系统本来的path只剩下你的sh所在文件目录。
这个方式重启path会还原,想重启不消失要编辑/etc/profile
(所有用户有效)
文件或~/.bashrc当前用户有效)
文件,具体方式可检索。其他方式不提了,有兴趣可详查
2.在你path设置的一个目录里设置个sh文件的链接。
具体查看
ln命令帮助。
热心网友
Linux 系统中有两大类命令。一个是内部命令即我们平时用的who,ps,stty等,第二类是外部命令,就是我们自己写的一些shell 脚本,就比如楼主所写的。内部命令我们可以直接运行,而外部命令可以通过两种途径去运行:
1:chmod +x whogrep.sh
./whogrep.sh
2: ksh whogrep.sh 用这种方法就不需要先将文件改为可执行的,而且这里的ksh必须是你的脚本使用的shell 命令介绍的话可参考”Linux命令大全“