关于bash执行方法问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
tracyone
帖子: 866
注册时间: 2010-11-19 14:25
系统: 乌班图
来自: onetracy.com
联系:

关于bash执行方法问题

#1

帖子 tracyone » 2010-12-05 20:35

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

Re: 关于bash执行方法问题

#2

帖子 hiphen » 2010-12-05 20:54

1. 因为在$PATH变量中没有你的“sh文件所在路径”。“ . ”代表当前路径
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
头像
tracyone
帖子: 866
注册时间: 2010-11-19 14:25
系统: 乌班图
来自: onetracy.com
联系:

Re: 关于bash执行方法问题

#3

帖子 tracyone » 2010-12-05 21:01

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

Re: 关于bash执行方法问题

#4

帖子 hiphen » 2010-12-05 21:08

2. 因为umask的原因。每个文件新建时根据umask,系统决定赋予它什么权限。具体可查google
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
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

Re: 关于bash执行方法问题

#5

帖子 adagio » 2010-12-05 21:11

第二问题我不是这个意思,我是说为什么默认没有x的权限,而要自己去加入这个执行的权限
如果任何一个文本文件都是可执行的……,你喜欢这样?
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
头像
tracyone
帖子: 866
注册时间: 2010-11-19 14:25
系统: 乌班图
来自: onetracy.com
联系:

Re: 关于bash执行方法问题

#6

帖子 tracyone » 2010-12-05 21:13

adagio 写了:
第二问题我不是这个意思,我是说为什么默认没有x的权限,而要自己去加入这个执行的权限
如果任何一个文本文件都是可执行的……,你喜欢这样?
知道了。sh文件有点危险。
头像
tracyone
帖子: 866
注册时间: 2010-11-19 14:25
系统: 乌班图
来自: onetracy.com
联系:

Re: 关于bash执行方法问题

#7

帖子 tracyone » 2010-12-05 21:14

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

Re: 关于bash执行方法问题

#8

帖子 hiphen » 2010-12-05 21:17

tracyone 写了:
hiphen 写了:2. 因为umask的原因。每个文件新建时根据umask,系统决定赋予它什么权限。umask分系统umask和用户.umask,具体可查google
3. 那得看你的shell script的功能了,需要什么命令就要必须包含该命令所在的路径。一般来说,符合POSIX规定的路径就是最基本的PATH要求。
:em52
修正,umask只有一个,只不过可以放在不同地方重新定义
基础问题,请看入门手册http://people.ubuntu.com/~happyaron/udc-cn/lucid-html/

Acer aspire 4736G / Ubuntu 10.04LTS
Asus eeepc900 / Xandros
Nokia N900 / Maemo 1.2.12
回复