리눅스 쉘에서 echo $ 1은 무엇을해야 하는가? echo $1기본 로그인 쉘이 무엇인지 인쇄합니다. 그러나 echo

나는 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 은 쉘 스크립트에 전달 된 인수입니다.

당신이 실행한다고 가정 해보십시오.

./myscript.sh hello 123

그때

$ 1안녕하세요

$ 2123입니다


답변

귀하의 경우 $ 1은이 인수가 로그인 쉘을 실행하는 스크립트로 전달 되었기 때문에 사용 된 기본 로그인 쉘을 인쇄합니다. 그러나 현재 세션에서 자체 스크립트를 작성하고 실행하는 경우 $ 1, $ 2, …는 스크립트로 보내는 매개 변수가됩니다.