linux shell中$0是什么意思?

我看很多材料上介绍是脚本名,但比方我新建test.sh,在里面echo$0,输出的结果是bash,难道bash就是脚本名?为什么不是test.sh,如何才能输出test.... 我看很多材料上介绍是脚本名,但比方我新建test.sh,在里面echo $0,输出的结果是bash,难道bash就是脚本名?为什么不是test.sh,如何才能输出test.sh? 展开
 我来答
日TimE寸
推荐于2017-09-24 · TA获得超过9568个赞
知道大有可为答主
回答量:1358
采纳率:83%
帮助的人:466万
展开全部

这是linux中shell的变量,$0只是其中的一个。下面是常用的shell变量:

  • $0 Shell本身的文件名

  • $1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…

  • $$ Shell本身的PID(ProcessID)

  • $! Shell最后运行的后台Process的PID

  • $? 最后运行的命令的结束代码(返回值)

  • $- 使用Set命令设定的Flag一览

  • $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有数。

  • $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。

  • $# 添加到Shell的参数个数

万万的呆爹
推荐于2017-09-06 · 超过13用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:35万
展开全部
$0 是脚本名称。

不知道你是怎么执行脚本的。 source test.sh 返回的是bash
sh 或者是 bash test.sh 返回的是脚本名称。
追问
你是对的,为什么sh就可以返回脚本名称,而source返回bash啊
追答
bash的帮助里说,bash "test.sh" 这种形式启动时 ,$0才被设置成文件名。

source是bash的内建命令,把文件读取到当前bash中执行,相当于在当前bash手动输入命令,所以$0是bash.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5cf36ad42
推荐于2018-06-08 · TA获得超过129个赞
知道答主
回答量:195
采纳率:0%
帮助的人:82.3万
展开全部
$# 是传给脚本的参数个数

$0 是脚本本身的名字

$1 是传递给该shell脚本的第一个参数

$2 是传递给该shell脚本的第二个参数
...
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lhq33899
2013-09-16 · 超过15用户采纳过TA的回答
知道答主
回答量:117
采纳率:100%
帮助的人:48.3万
展开全部
bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)。Bourne shell是一个早期的重要shell,由史蒂夫·伯恩在1978年前后编写,并同Version 7 Unix一起发布。
$0 是脚本本身执行的shell的名字
追问
脚本本身执行的shell的名字在bash shell里输出就是bash吗?
追答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jernmy
2013-09-16 · TA获得超过6044个赞
知道大有可为答主
回答量:8279
采纳率:58%
帮助的人:4947万
展开全部
是否可以这样理解:运行脚步就是bash test.sh,$0自然是bash;脚本里的命令展开是 bash echo $0,这样$0也是bash。
追问
那有没有命令可以获得test.sh,全路径也可以,写出来立刻给分
追答
试了一下,直接运行echo $0,显示bash;如果是通过脚本运行的,就显示脚本名字了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式