第一个问题 我转到我编好的sh文件路径下,然后直接输入xxx.sh,却说没有这个命令,而./xxx.sh却可以。这是为什么?
第二个问题,为什么我编好的sh文件不自动拥有执行的权利,每次都来个permission denied,还要加个执行权限
第三个问题,就是shellscrip里,前面都要加如PATH=.................然后export PATH,这到底有什么用?,我删了它sh文件还是可以运行,能不能举个反例删了它就会出错
关于bash执行方法问题
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
- tracyone
- 帖子: 866
- 注册时间: 2010-11-19 14:25
- 系统: 乌班图
- 来自: onetracy.com
- 联系:
- hiphen
- 帖子: 803
- 注册时间: 2010-08-27 15:53
Re: 关于bash执行方法问题
1. 因为在$PATH变量中没有你的“sh文件所在路径”。“ . ”代表当前路径
2. 童鞋,这个是linux脚本基础好不?不管是不是sh结尾的文件,只要没有x权限,就不能执行!建议花点时间看看一些linux入门书籍,例如什么3天学会linux那些也行阿
3. 因为用户机器中的环境变量$PATH有可能跟你的不同,你的这个script有可能在别人的机器上执行,为了可在任一台机器上运行,你必须自己设定PATH。
2. 童鞋,这个是linux脚本基础好不?不管是不是sh结尾的文件,只要没有x权限,就不能执行!建议花点时间看看一些linux入门书籍,例如什么3天学会linux那些也行阿
3. 因为用户机器中的环境变量$PATH有可能跟你的不同,你的这个script有可能在别人的机器上执行,为了可在任一台机器上运行,你必须自己设定PATH。
基础问题,请看入门手册http://people.ubuntu.com/~happyaron/udc-cn/lucid-html/
Acer aspire 4736G / Ubuntu 10.04LTS
Asus eeepc900 / Xandros
Nokia N900 / Maemo 1.2.12
Acer aspire 4736G / Ubuntu 10.04LTS
Asus eeepc900 / Xandros
Nokia N900 / Maemo 1.2.12
- tracyone
- 帖子: 866
- 注册时间: 2010-11-19 14:25
- 系统: 乌班图
- 来自: onetracy.com
- 联系:
Re: 关于bash执行方法问题
第二问题我不是这个意思,我是说为什么默认没有x的权限,而要自己去加入这个执行的权限hiphen 写了:1. 因为在$PATH变量中没有你的“sh文件所在路径”。“ . ”代表当前路径
2. 童鞋,这个是linux脚本基础好不?不管是不是sh结尾的文件,只要没有x权限,就不能执行!建议花点时间看看一些linux入门书籍,例如什么3天学会linux那些也行阿
3. 因为用户机器中的环境变量$PATH有可能跟你的不同,你的这个script有可能在别人的机器上执行,为了可在任一台机器上运行,你必须自己设定PATH。
第三个问题,你的意思是说那个PATH是为了能别的用户能运行的意思么,如果是这样,怎么设定才能保证所有的机器都能运行
- hiphen
- 帖子: 803
- 注册时间: 2010-08-27 15:53
Re: 关于bash执行方法问题
2. 因为umask的原因。每个文件新建时根据umask,系统决定赋予它什么权限。具体可查google
3. 那得看你的shell script的功能了,需要什么命令就要必须包含该命令所在的路径。一般来说,符合POSIX规定的路径就是最基本的PATH要求。
3. 那得看你的shell script的功能了,需要什么命令就要必须包含该命令所在的路径。一般来说,符合POSIX规定的路径就是最基本的PATH要求。
上次由 hiphen 在 2010-12-05 21:15,总共编辑 1 次。
基础问题,请看入门手册http://people.ubuntu.com/~happyaron/udc-cn/lucid-html/
Acer aspire 4736G / Ubuntu 10.04LTS
Asus eeepc900 / Xandros
Nokia N900 / Maemo 1.2.12
Acer aspire 4736G / Ubuntu 10.04LTS
Asus eeepc900 / Xandros
Nokia N900 / Maemo 1.2.12
- adagio
- 论坛版主
- 帖子: 22110
- 注册时间: 2008-02-17 23:47
- 来自: 美丽富饶的那啥星球
Re: 关于bash执行方法问题
如果任何一个文本文件都是可执行的……,你喜欢这样?第二问题我不是这个意思,我是说为什么默认没有x的权限,而要自己去加入这个执行的权限
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……
---------------------------------------------------------------------------------
★ [图片版]新手当自强(续)FAQ
★ [新手进阶]挂载、fstab、调整linux分区
★ [图片版]E17桌面环境配置手把手
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……
---------------------------------------------------------------------------------
★ [图片版]新手当自强(续)FAQ
★ [新手进阶]挂载、fstab、调整linux分区
★ [图片版]E17桌面环境配置手把手
- tracyone
- 帖子: 866
- 注册时间: 2010-11-19 14:25
- 系统: 乌班图
- 来自: onetracy.com
- 联系:
Re: 关于bash执行方法问题
知道了。sh文件有点危险。adagio 写了:如果任何一个文本文件都是可执行的……,你喜欢这样?第二问题我不是这个意思,我是说为什么默认没有x的权限,而要自己去加入这个执行的权限
- tracyone
- 帖子: 866
- 注册时间: 2010-11-19 14:25
- 系统: 乌班图
- 来自: onetracy.com
- 联系:
Re: 关于bash执行方法问题
哦hiphen 写了:2. 因为umask的原因。每个文件新建时根据umask,系统决定赋予它什么权限。umask分系统umask和用户.umask,具体可查google
3. 那得看你的shell script的功能了,需要什么命令就要必须包含该命令所在的路径。一般来说,符合POSIX规定的路径就是最基本的PATH要求。

- hiphen
- 帖子: 803
- 注册时间: 2010-08-27 15:53
Re: 关于bash执行方法问题
修正,umask只有一个,只不过可以放在不同地方重新定义tracyone 写了:哦hiphen 写了:2. 因为umask的原因。每个文件新建时根据umask,系统决定赋予它什么权限。umask分系统umask和用户.umask,具体可查google
3. 那得看你的shell script的功能了,需要什么命令就要必须包含该命令所在的路径。一般来说,符合POSIX规定的路径就是最基本的PATH要求。
基础问题,请看入门手册http://people.ubuntu.com/~happyaron/udc-cn/lucid-html/
Acer aspire 4736G / Ubuntu 10.04LTS
Asus eeepc900 / Xandros
Nokia N900 / Maemo 1.2.12
Acer aspire 4736G / Ubuntu 10.04LTS
Asus eeepc900 / Xandros
Nokia N900 / Maemo 1.2.12