단일 작업을 수행하기 위해 선택한 여러 파일을 입력으로 사용하도록 수정하고 싶은 노틸러스 스크립트가 있습니다. 누군가 이것을 달성하는 방법을 설명할 수 있습니까?
나는 이것을 시도했고 command $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
스크립트가 하는 일은 두 개의 개별 작업으로 실행되는 command file1
것 입니다. command file2
이것은 내 사용 사례에서는 작동하지 않습니다. 대신 스크립트를 실행해야 합니다 command file1 file2
.
align_image_stack
중요한 경우 2개 이상의 이미지 파일을 입력으로 요구하는 명령과 함께 사용합니다. 오류 메시지를 보기 위해 터미널에서 노틸러스(Nautilus)를 실행하면 다음과 같은 메시지가 나타납니다."align_image_stack: 최소 2개의 파일을 지정해야 합니다.". 아래와 같이 일부 명령을 테스트했지만 모두 동일한 오류 메시지가 생성됩니다. 문제는 변수가 $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
줄 바꿈을 생성한다는 것인데 선택한 파일 경로를 캡처하는 방법을 모르겠습니다.
align_image_stack "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
align_image_stack $(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
align_image_stack printf("$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
echo -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | xargs -I align_image_stack "{}"
답변1
나는 그것을 작동시키지 못했지만 $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
이것은 작동합니다 :
command $(echo -n "$@")
나는 이것이 명령 대체라고 생각합니다. "$@" 문자는 선택된 모든 파일을 명령에 대한 입력으로 함께 삽입하고 -n 매개변수를 사용하여 에코가 나열한 후 개행을 억제합니다.
괄호로 묶인 사진 세트를 정렬하고 혼합해야 하는 경우 테스트를 거쳐 잘 작동하는 다음 Nautilus 스크립트를 사용할 수 있습니다. 완성된 제품을 데스크탑에 출력하고(파일 이름은 현재 시간) 다음을 수행한 후 모든 임시 파일을 지웁니다.
#!/bin/bash
align_image_stack -a BATCH -C $(echo -n "$@") && enfuse -o ~/Desktop/$(date '+%Y-%m-%d-%T').tif BATCH*.tif && rm BATCH*.tif