我做了一个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、... 将是您发送给脚本的参数。