수동으로 입력한 명령과 스크립트에 의해 실행된 명령 구별

수동으로 입력한 명령과 스크립트에 의해 실행된 명령 구별

예를 들어

$ pwd
/home/my_name

명령이 사람에 의해 입력되었는지 아니면 스크립트에 의해 실행되었는지 여부가 인식될 수도 있고 인식되지 않을 수도 있습니다.

답변1

아니요.

스크립트 또는 셸 함수는 (대화형 셸임을 나타냄) $-을 확인하고 찾 거나 제어 tty(예 : )를 찾을 수 있지만 이는 완벽한 방법은 아닙니다.itty

사용자의 셸 세션에서 실행된 모든 명령을 기록 하거나 root해당 셸 기록 파일을 보더라도 표시되는 명령이 해당 사용자가 직접 입력했는지, 명령줄에 삽입했는지(또는 로그에 입력했는지) 알 수 없습니다. ) 스크립트 또는 기타 방법으로.

답변2

실제로 완벽한(또는 가짜) 증명 방법은 없지만(적어도 내가 아는 한) 기술적으로는 다음을 통해 차이점을 확인할 수 있습니다.

root@aw [~]# set > cons
root@aw [~]# cat ./test.sh
#!/bin/bash

set > scri
root@aw [~]# ./test.sh

그 다음에

root@aw [~]# diff cons scri

다양한 차이점이 있으니 마음에 드는 것을 선택하세요.

관련 정보