Що потрібно робити на оболонці Linux, що лунає $ 1?


11

Я це роблю echo $1, він виводить, що використовується оболонка для входу за замовчуванням.

Але echo $2наперед, все, що я отримую, - це новий рядок. Чому так?

Відповіді:


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 - це ім'я виконуваного сципа, аналогічне аргументу.
Бенджамін Баньє

4

$ 1 - аргумент, переданий для сценарію оболонки.

Припустимо, ти біжиш

./myscript.sh hello 123 

потім

$ 1 буде привіт

$ 2 буде 123


3

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.