실행 전에 명령줄은 어디에 저장되어 있나요?

실행 전에 명령줄은 어디에 저장되어 있나요?

이런 스크립트가 있어요~/draft

$ cat test.sh
#! /usr/local/bin/bash

for i in ./*;do
    echo $i
done

실행하면 test.sh코드 블록이 다음 위치에 저장됩니다.

$ bash test.sh
./first.html
./second.html
./test.sh
./third.html

그래서 스크립트 이름을 실행 test.sh하고 출력을 얻습니다.

또는 다음 명령을 직접 실행할 수도 있습니다.

$ for i in ./*; do echo $i; done
./first.html
./second.html
./test.sh
./third.html

두 번째 블록에서도 동일한 결과가 나왔습니다.

이전 코드가 file 에 있으므로 test.sh이 명령이 있는 파일 이름은 무엇입니까 for i in ./*; do echo $i; done?

답변1

명령은 실행될 파일에 저장될 필요가 없습니다. 인터프리터(이 경우 bash)는 스크립트 파일과 마찬가지로 명령줄을 메모리로 간단히 읽을 수 있습니다(몇 가지 사소한 버퍼링 관련 주의 사항 있음). 실행 정확히 같은 방식으로 작동합니다.

관련 정보