$0能显示程序名吗?

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
freesky3555
帖子: 138
注册时间: 2007-03-12 17:59
来自: 山西榆次

$0能显示程序名吗?

#1

帖子 freesky3555 » 2009-04-27 7:44

资料上说$0显示程序名,可实际只出来是bash而不是程序名
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: $0能显示程序名吗?

#2

帖子 eexpress » 2009-04-27 8:39

自己测试,对了就对了。
● 鸣学
头像
petrele.chen
帖子: 261
注册时间: 2008-09-11 17:41

Re: $0能显示程序名吗?

#3

帖子 petrele.chen » 2009-05-09 14:02

freesky3555 写了:资料上说$0显示程序名,可实际只出来是bash而不是程序名
用basename吧

在脚本里放上echo `basename`试试看
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: $0能显示程序名吗?

#4

帖子 xiooli » 2009-05-09 14:37

你要把这个放脚本里面才行。直接在bash里面执行当然是bash咯。
头像
freesky3555
帖子: 138
注册时间: 2007-03-12 17:59
来自: 山西榆次

Re: $0能显示程序名吗?

#5

帖子 freesky3555 » 2009-05-09 16:38

xiooli 写了:你要把这个放脚本里面才行。直接在bash里面执行当然是bash咯。
在ubuntu终端中怎么处理也是bash
头像
freesky3555
帖子: 138
注册时间: 2007-03-12 17:59
来自: 山西榆次

Re: $0能显示程序名吗?

#6

帖子 freesky3555 » 2009-05-11 18:39

举一例,如有以下文件:testfile

代码: 全选

# echo filename

echo $0 is this programe name.
# . testfile

/bin/bash is this programe name.

#sh testfile

testfile is this programe name.
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: $0能显示程序名吗?

#7

帖子 aerofox » 2009-05-11 22:51

freesky3555 写了:举一例,如有以下文件:testfile

代码: 全选

# echo filename

echo $0 is this programe name.
# . testfile

/bin/bash is this programe name.

#sh testfile

testfile is this programe name.
举这个例子是证明你已经明白了吗?
头像
freesky3555
帖子: 138
注册时间: 2007-03-12 17:59
来自: 山西榆次

Re: $0能显示程序名吗?

#8

帖子 freesky3555 » 2009-05-12 23:46

:em68 :em68 :em68

明白不明白我现在也说不清了
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

Re: $0能显示程序名吗?

#9

帖子 hubert_star » 2009-05-12 23:49

.

./

sh

三者的区别

第一个点,是后面跟一个空格的
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

Re: $0能显示程序名吗?

#10

帖子 hubert_star » 2009-05-12 23:51

算了,告诉你吧

. xxx.sh 不是去当作一个程序执行这个脚本

./xxx.sh 才是

sh xxx.sh 也行,与./xxx.sh的区别是./xxx.sh是可执行权限,而这句不必是
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

Re: $0能显示程序名吗?

#11

帖子 BigSnake.NET » 2009-05-12 23:56

. 就是 source
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
freesky3555
帖子: 138
注册时间: 2007-03-12 17:59
来自: 山西榆次

Re: $0能显示程序名吗?

#12

帖子 freesky3555 » 2009-05-13 16:03

各位是一般是怎么执行脚步的?是source还是chmod +x,还是sh?
archangelwin
帖子: 74
注册时间: 2007-09-09 14:34

Re: $0能显示程序名吗?

#13

帖子 archangelwin » 2009-05-13 20:51

是不是
chmod +x XXX
./XXX
呢? :em06
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: $0能显示程序名吗?

#14

帖子 aerofox » 2009-05-13 22:08

一般情况下 chmod +x 后以脚本文件名作为命令执行,当脚本用于修改当前 shell 的环境时用点命令执行(即 source)。
回复