gpt4 book ai didi

linux - 为什么位置参数 $1 具有不同的值?

转载 作者:太空宇宙 更新时间:2023-11-04 04:23:15 25 4
gpt4 key购买 nike

我是Linux初学者,一直在学习shell脚本,对位置参数的理解有些困难。我首先在终端中输入如下内容:

set this is a great place

然后我跑:

echo $1

它显示:

this

然后我在 shell 脚本文件 test.sh 中尝试了一些东西:

#!/bash/sh
echo $1

我在终端上运行 shell 脚本:

sh test.sh

什么也没显示。并且,如果我运行:

sh test.sh hello

屏幕上会显示你好。但是,如果我只是运行:

echo $1

在终端命令行上。它仍然会显示这个

为什么 1 美元的值(value)在两个地方不同?

最佳答案

$1($2 等)是当前 shell(或 shell 脚本)的参数

set 内置函数用新的参数替换当前的参数集。

% cat test.sh
#!/bash/sh
echo $1
set X Y Z
echo $1

# No args given, so $1 will start set to A, set will change it to X
% sh test.sh

X
# Args given, $1 will start set to A, set will change it to X
% sh test.sh A B C
A
X

关于linux - 为什么位置参数 $1 具有不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11338809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com