아이콘 클릭 또는 터미널에서 bash 스크립트가 시작되었는지 확인


4

터미널에서 시작했는지 또는 파일 관리자에서 아이콘을 두 번 클릭하여 시작했는지에 따라 다른 동작을 원하는 스크립트가 있습니다. 내가 할 수 있습니까?


env"scriptenv _ $ (date + % s)"에 쓰는 bah 스크립트를 작성하십시오 . 각 방법으로 한 번 시작하고 출력을 비교하십시오.
다니엘 벡

답변:


4

반품 상태의 차이를 사용 tty하여 도움을받을 수 있습니다.

if tty -s;
then
    # running in a terminal
    ...
fi

( 명령을 자동으로 tty -s실행 tty)

종료 상태 :

  • 표준 입력이 터미널 인 경우 0
  • 표준 입력이 터미널이 아닌 경우 1
  • 2 잘못된 주장이 주어진다면
  • 쓰기 오류가 발생하면 3

또는 쉘의 내장 테스트를 사용하여 표준 입력 / 출력이 터미널과주고 받는지 확인할 수 있습니다.

if [ -t 0 ];  # stdin
then
    # running in a terminal
    ...
fi

0

이 아이콘이 컴퓨터에있는 경우 아이콘을 만든 상태에서 아이콘이 나타내는 명령 줄에 다음과 같은 추가 매개 변수를 전달하면됩니다.

/path/to/my/script fromgui arg2 arg3 .. argN

그리고 그냥 테스트 [[ "$1" == "fromgui" ]]하거나 시뮬레이션하십시오.


0

또 다른 가능한 검사는 / proc / $ PPID / cmdline에있는 내용을 참조하십시오.

이것은 당신을 스폰 한 프로세스의 명령 줄 (NUL 구분)입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.