![수동으로 입력한 명령과 스크립트에 의해 실행된 명령 구별](https://linux55.com/image/89703/%EC%88%98%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EC%9E%85%EB%A0%A5%ED%95%9C%20%EB%AA%85%EB%A0%B9%EA%B3%BC%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%20%EC%9D%98%ED%95%B4%20%EC%8B%A4%ED%96%89%EB%90%9C%20%EB%AA%85%EB%A0%B9%20%EA%B5%AC%EB%B3%84.png)
예를 들어
$ pwd
/home/my_name
명령이 사람에 의해 입력되었는지 아니면 스크립트에 의해 실행되었는지 여부가 인식될 수도 있고 인식되지 않을 수도 있습니다.
답변1
아니요.
스크립트 또는 셸 함수는 (대화형 셸임을 나타냄) $-
을 확인하고 찾 거나 제어 tty(예 : )를 찾을 수 있지만 이는 완벽한 방법은 아닙니다.i
tty
사용자의 셸 세션에서 실행된 모든 명령을 기록 하거나 root
해당 셸 기록 파일을 보더라도 표시되는 명령이 해당 사용자가 직접 입력했는지, 명령줄에 삽입했는지(또는 로그에 입력했는지) 알 수 없습니다. ) 스크립트 또는 기타 방법으로.
답변2
실제로 완벽한(또는 가짜) 증명 방법은 없지만(적어도 내가 아는 한) 기술적으로는 다음을 통해 차이점을 확인할 수 있습니다.
root@aw [~]# set > cons
root@aw [~]# cat ./test.sh
#!/bin/bash
set > scri
root@aw [~]# ./test.sh
그 다음에
root@aw [~]# diff cons scri
다양한 차이점이 있으니 마음에 드는 것을 선택하세요.