分页: 1 / 1

关于bash执行方法问题

发表于 : 2010-12-05 20:35
tracyone
第一个问题 我转到我编好的sh文件路径下,然后直接输入xxx.sh,却说没有这个命令,而./xxx.sh却可以。这是为什么?
第二个问题,为什么我编好的sh文件不自动拥有执行的权利,每次都来个permission denied,还要加个执行权限
第三个问题,就是shellscrip里,前面都要加如PATH=.................然后export PATH,这到底有什么用?,我删了它sh文件还是可以运行,能不能举个反例删了它就会出错

Re: 关于bash执行方法问题

发表于 : 2010-12-05 20:54
hiphen
1. 因为在$PATH变量中没有你的“sh文件所在路径”。“ . ”代表当前路径
2. 童鞋,这个是linux脚本基础好不?不管是不是sh结尾的文件,只要没有x权限,就不能执行!建议花点时间看看一些linux入门书籍,例如什么3天学会linux那些也行阿
3. 因为用户机器中的环境变量$PATH有可能跟你的不同,你的这个script有可能在别人的机器上执行,为了可在任一台机器上运行,你必须自己设定PATH。

Re: 关于bash执行方法问题

发表于 : 2010-12-05 21:01
tracyone
hiphen 写了:1. 因为在$PATH变量中没有你的“sh文件所在路径”。“ . ”代表当前路径
2. 童鞋,这个是linux脚本基础好不?不管是不是sh结尾的文件,只要没有x权限,就不能执行!建议花点时间看看一些linux入门书籍,例如什么3天学会linux那些也行阿
3. 因为用户机器中的环境变量$PATH有可能跟你的不同,你的这个script有可能在别人的机器上执行,为了可在任一台机器上运行,你必须自己设定PATH。
第二问题我不是这个意思,我是说为什么默认没有x的权限,而要自己去加入这个执行的权限
第三个问题,你的意思是说那个PATH是为了能别的用户能运行的意思么,如果是这样,怎么设定才能保证所有的机器都能运行

Re: 关于bash执行方法问题

发表于 : 2010-12-05 21:08
hiphen
2. 因为umask的原因。每个文件新建时根据umask,系统决定赋予它什么权限。具体可查google
3. 那得看你的shell script的功能了,需要什么命令就要必须包含该命令所在的路径。一般来说,符合POSIX规定的路径就是最基本的PATH要求。

Re: 关于bash执行方法问题

发表于 : 2010-12-05 21:11
adagio
第二问题我不是这个意思,我是说为什么默认没有x的权限,而要自己去加入这个执行的权限
如果任何一个文本文件都是可执行的……,你喜欢这样?

Re: 关于bash执行方法问题

发表于 : 2010-12-05 21:13
tracyone
adagio 写了:
第二问题我不是这个意思,我是说为什么默认没有x的权限,而要自己去加入这个执行的权限
如果任何一个文本文件都是可执行的……,你喜欢这样?
知道了。sh文件有点危险。

Re: 关于bash执行方法问题

发表于 : 2010-12-05 21:14
tracyone
hiphen 写了:2. 因为umask的原因。每个文件新建时根据umask,系统决定赋予它什么权限。umask分系统umask和用户.umask,具体可查google
3. 那得看你的shell script的功能了,需要什么命令就要必须包含该命令所在的路径。一般来说,符合POSIX规定的路径就是最基本的PATH要求。
:em52

Re: 关于bash执行方法问题

发表于 : 2010-12-05 21:17
hiphen
tracyone 写了:
hiphen 写了:2. 因为umask的原因。每个文件新建时根据umask,系统决定赋予它什么权限。umask分系统umask和用户.umask,具体可查google
3. 那得看你的shell script的功能了,需要什么命令就要必须包含该命令所在的路径。一般来说,符合POSIX规定的路径就是最基本的PATH要求。
:em52
修正,umask只有一个,只不过可以放在不同地方重新定义