На оболочке Linux, что эхо 1$, как предполагается, делает?

Я делаю a echo $1, это распечатывает то, что является используемой оболочкой входа в систему по умолчанию.

Но для echo $2 вперед, все, что я получаю, является новой строкой. Почему это?

11
задан 30.07.2010, 12:12

2 ответа

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
20
ответ дан 07.12.2019, 12:12

В Вашем случае 1$ печатает оболочку входа в систему по умолчанию, используемую, потому что этот аргумент был передан для сценариев, который выполняет оболочку входа в систему. Но если Вы запишете и запустите свой собственный скрипт на текущей сессии, 1$, 2$... будет параметрами, которые Вы отправляете в свой сценарий.

3
ответ дан 07.12.2019, 12:12

Теги

Похожие вопросы