我是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它将在屏幕上显示hello。但是,如果我只是跑:
echo $1在终端命令行上。它仍然会显示给这个
为何两地1元的价值是不同的呢?
发布于 2012-07-05 06:35:23
$1 ($2等)是当前shell (或shell脚本)的参数。
集合内置用新的参数替换当前的参数集。
% 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发布于 2012-07-05 06:45:26
Pl。看看这个解释是否有用,
您可以在这里考虑两个进程,一个是包含一组变量的当前shell。
当你打字时,
set this is a great place 更新当前shell的变量。
现在,当你键入
sh test.sh 这意味着您现在有一个单独的进程和自己的一组变量。现在这两组变量是不一样的。所以在这种情况下,你得到了一个不同的输出。
下面可以找到苹果编写的一个非常好的shell脚本教程,
https://stackoverflow.com/questions/11338809
复制相似问题