在Linux Shell上,echo $ 1应该做什么?


11

我执行了echo $1,它会打印出所使用的默认登录shell。

但是echo $2从此以后,我得到的只是换行符。这是为什么?

Answers:


21

$ 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

1
$ 0是要执行的Scipt的名称,类似于argv。
本杰明·班尼尔


3

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.