Я делаю echo $1
, он выводит, какая оболочка входа по умолчанию используется.
Но echo $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
Предположим, вы бежите
затем
источник
В вашем случае $ 1 печатает используемую по умолчанию оболочку входа в систему, потому что этот аргумент был передан в скрипт, который запускает вашу оболочку входа в систему. Но если вы напишите и запустите свой собственный скрипт в текущем сеансе, $ 1, $ 2, ... будут параметрами, которые вы отправите в свой скрипт.
источник