在 Linux shell 中,echo $1 应该做什么?

在 Linux shell 中,echo $1 应该做什么?

我做了一个echo $1,它打印出使用的默认登录 shell 是什么。

echo $2之后,我得到的只是换行符。这是为什么呢?

答案1

$1(或$2、$3......)应该是给予某些脚本的参数。

以下是示例脚本:

#!/bin/bash

echo "\$1 is now $1"
echo "\$2 is now $2"
echo "\$3 is now $3"

示例输出

jaba@lappy:/tmp$ ./example.sh 
$1 is now 
$2 is now 
$3 is now 
jaba@lappy:/tmp$ ./example.sh 1 2 3
$1 is now 1
$2 is now 2
$3 is now 3

答案2

1 美元是传递给 shell 脚本的参数。

假设你跑

./myscript.sh hello 123 

然后

1 美元你好

2美元123

答案3

在您的例子中,$1 打印使用的默认登录 shell,因为此参数已传递给运行您的登录 shell 的脚本。但如果您在当前会话中编写并运行自己的脚本,$1、$2、... 将是您发送给脚本的参数。

相关内容