Tor 런처 명령 분석

Tor 런처 명령 분석

저는 스크립팅에 관심이 많은 초보자인데 이제 다음 명령(Tor 런처에서)의 각 부분을 실행하는 것이 무엇인지 궁금합니다.

sh -c '"/home/user/tor-browser_en-US/Browser/start-tor-browser" --detach || ([ !  -x "/home/user/tor-browser_en-US/Browser/start-tor-browser" ] && "$(dirname "$*")"/Browser/start-tor-browser --detach)' dummy %k

여기에서 찾았습니다.https://askubuntu.com/questions/831847/what-is-the-sh-c-command저것:

" sh이 프로그램을 sh인터프리터라고 하며, 이 -c플래그는 프로그램이 해석한 대로 다음 명령이 실행된다는 의미입니다."

그런 다음 스크립트 경로가 있으며 start-tor-browser( --detach제가 올바르게 이해한 경우) 터미널에서 Tor 브라우저 프로세스를 분리합니다.

여기에서 몇 가지 정보를 찾았습니다 --detach.https://superuser.com/questions/178587/how-do-i-detach-a-process-from-terminal-entirely

내가 아는 한 그것은 -x"실행 가능하게 만드세요"를 의미 &&하고 "다른 명령도 실행합니다"를 의미하며 !"강제로 실행하시겠습니까?"를 의미할 수도 있습니다.

dummy %k그렇다면 마지막에 현재 디렉토리(또는 파일)를 가리키는 심볼릭 링크가 있습니까?

왜 큰따옴표가 있는지 이해가 되지 않습니다: ' ", 이 이상한 ||이중 괄호 ([및 this "$(dirname "$*").

이 코드를 더 잘 이해했다면 알려주시기 바랍니다. :)

감사합니다!

답변1

명령의 첫 번째 부분이 작동하는 방식을 올바르게 설명했습니다. 나는 당신의 질문에 대답하려고 노력할 것입니다. ||논리적 OR이므로 명령줄의 나머지 부분은 새 명령줄에서 실행됩니다.서브쉘(이것이 (...)의미합니다.) 첫 번째 명령이 상태 >0으로 종료되는 경우에만 실패합니다.

[ ! -x file ] 파일이 있는지 확인하십시오.아니요(!는 부정을 의미) 실행 가능합니다(또는 존재하지 않습니다).

&&논리 AND이므로 조건이 true(홈 디렉터리에 exec 파일이 없음)이면 명령줄 실행이 계속됩니다.

바라보다https://www.gnu.org/software/bash/manual/bash.html

관련 정보