Linux Mint용 Nemo의 애플리케이션 "연결 프로그램" 목록을 통해 공백이 포함된 스크립트를 실행하는 방법은 무엇입니까?

Linux Mint용 Nemo의 애플리케이션 "연결 프로그램" 목록을 통해 공백이 포함된 스크립트를 실행하는 방법은 무엇입니까?

긴 이야기 짧게

Exec=gnome-terminal -- bash -c 'script="%u";if [[ -e "$script" ]] ; then "$script" ; else exec bash ; fi'GNOME 데스크탑 파일의 줄을 사용하여 스크립트를 실행하지만 이름에 공백이 없어야 합니다. 어떤 이름으로든 스크립트를 실행하는 방법은 무엇입니까?

"내가 원하는 것"과 내가 시도한 것에 대한 전체 설명:

기본적으로 Nemo(노틸러스 기반 파일 관리자 AFAIK)의 편집기에서 스크립트를 열고 싶지만 Nemo에서 이러한 파일을 여는 또 다른 옵션으로 터미널에서 계속 열 수 있습니다.

인터넷 검색해서 찾았습니다https://askubuntu.com/questions/286621/how-do-i-run-executable-scripts-in-nautilus. 새로운 건 아니지만 파일 관리자에서 옵션을 "보기"로 설정하면 "연결 프로그램"에서 실행할 수 있는 옵션이 없어서 별도로 터미널을 열고 스크립트 이름을 입력해야 합니다.

열어보고 /usr/share/applications/org.gnome.Terminal.desktop실행 Exec=gnome-terminal --window해 보니https://askubuntu.com/questions/974756/how-can-i-open-a-extra-console-and-run-a-program-in-it-with-one-commandExec=gnome-terminal --window예제 line으로 줄을 변경 하면 Exec=gnome-terminal -- bash -c 'script="%u";if [[ -e "$script" ]] ; then "$script" ; else exec bash ; fi'이름에 공백이 없는 스크립트에서는 작동하지만 공백이 포함된 스크립트에서는 예상한 스크립트 출력이 생성되지 않습니다. 별거 아닐 수도 있지만 더 나은 것을 원합니다.

%u예를 들어 여기에서 의미를 확인하세요.https://specations.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html.

답변1

이것무료 데스크톱 페이지귀하의 링크는 분명히 말합니다

인용된 매개변수 내에서는 필드 코드를 사용할 수 없습니다. 인용된 매개변수 내에서 필드 코드 확장 결과는 정의되지 않습니다.

bash에 매개변수로 URL을 전달하겠습니다.

gnome-terminal -- bash -c 'script="$1"; if [[ -e "$script" ]] ; then "$script" ; else exec bash ; fi' bash %u

관련 정보