linux shell中$0是什么意思?
我看很多材料上介绍是脚本名,但比方我新建test.sh,在里面echo$0,输出的结果是bash,难道bash就是脚本名?为什么不是test.sh,如何才能输出test....
我看很多材料上介绍是脚本名,但比方我新建test.sh,在里面echo $0,输出的结果是bash,难道bash就是脚本名?为什么不是test.sh,如何才能输出test.sh?
展开
6个回答
展开全部
这是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的参数个数
展开全部
$0 是脚本名称。
不知道你是怎么执行脚本的。 source test.sh 返回的是bash
sh 或者是 bash test.sh 返回的是脚本名称。
不知道你是怎么执行脚本的。 source test.sh 返回的是bash
sh 或者是 bash test.sh 返回的是脚本名称。
追问
你是对的,为什么sh就可以返回脚本名称,而source返回bash啊
追答
bash的帮助里说,bash "test.sh" 这种形式启动时 ,$0才被设置成文件名。
source是bash的内建命令,把文件读取到当前bash中执行,相当于在当前bash手动输入命令,所以$0是bash.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
...
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
...
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again)。Bourne shell是一个早期的重要shell,由史蒂夫·伯恩在1978年前后编写,并同Version 7 Unix一起发布。
$0 是脚本本身执行的shell的名字
$0 是脚本本身执行的shell的名字
追问
脚本本身执行的shell的名字在bash shell里输出就是bash吗?
追答
是
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是否可以这样理解:运行脚步就是bash test.sh,$0自然是bash;脚本里的命令展开是 bash echo $0,这样$0也是bash。
追问
那有没有命令可以获得test.sh,全路径也可以,写出来立刻给分
追答
试了一下,直接运行echo $0,显示bash;如果是通过脚本运行的,就显示脚本名字了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询