야드 및 가변 매개변수 공간 문제

야드 및 가변 매개변수 공간 문제

내 코드는 다음 용도로 작동합니다.

binariesPathList="FALSE 'inkscape'
TRUE '/home/jeanfar/Downloads/binary-portable/inkscape/Inkscape-1.0-4035a4f-x86_64.AppImage'
FALSE '/home/jeanfar/Downloads/binary-portable/inkscape/Inkscape-f54ab5f-x86_64.AppImage'
FALSE '/home/jeanfar/git-clones/inkscape-0.92.5/build/install_dir/bin/inkscape'
FALSE '/home/jeanfar/git-clones/inkscape/build/install_dir/bin/inkscape'"

# This is to demonstrate how YAD will receive it. 
echo $binariesPathList

answer=$(yad \
    --list \
    --radiolist \
        --column="Pick" \
        --column="Application" \
        --column="Application Path" \
        $binariesPathList \
)

마지막 코드를 실행하는 경우(버튼 무시): 여기에 이미지 설명을 입력하세요.

그러나 구성이 정확히 동일하지만 세 개의 열이 있기 때문에 실패합니다. 실행해 보면 동일한 기호가 있더라도 '공백으로 구분되어 있음을 알 수 있습니다.

binariesPathList="FALSE 'System Default Installation' 'inkscape'
TRUE '1.0 AppImage' '/home/jeanfar/Downloads/binary-portable/inkscape/Inkscape-1.0-4035a4f-x86_64.AppImage'
FALSE '1.1-dev Appimage' '/home/jeanfar/Downloads/binary-portable/inkscape/Inkscape-f54ab5f-x86_64.AppImage'
FALSE '0.92.5 Build' '/home/jeanfar/git-clones/inkscape-0.92.5/build/install_dir/bin/inkscape'
FALSE 'Master Build' '/home/jeanfar/git-clones/inkscape/build/install_dir/bin/inkscape'"

# This is to demonstrate how YAD will receive it. 
echo $binariesPathList

answer=$(yad \
    --list \
    --radiolist \
        --column="Pick" \
        --column="Application" \
        --column="Application Path" \
        $binariesPathList \
)

마지막 코드를 실행하는 경우(버튼 무시): 여기에 이미지 설명을 입력하세요.

여기서 정말 이상한 점은 변수가 있어야 하는 위치에 매개변수를 직접 넣을 수 있고 그 공백이 있어도 첫 번째 매개변수보다 더 잘 작동한다는 것입니다.

echo의 복사-붙여넣기와 완전히 동일하지만 $(echo $binariesPathList)변수를 해당 변수로 바꾸면 동일한 결과를 얻게 됩니다.

answer=$(yad \
    --list \
    --radiolist \
        --column="Pick" \
        --column="Application" \
        --column="Application Path" \
        FALSE 'System Default Installation' 'inkscape' FALSE '1.0 AppImage' '/home/jeanfar/Downloads/binary-portable/inkscape/Inkscape-1.0-4035a4f-x86_64.AppImage' FALSE '1.1-dev Appimage' '/home/jeanfar/Downloads/binary-portable/inkscape/Inkscape-f54ab5f-x86_64.AppImage' FALSE '0.92.5 Build' '/home/jeanfar/git-clones/inkscape-0.92.5/build/install_dir/bin/inkscape' FALSE 'Master Build' '/home/jeanfar/git-clones/inkscape/build/install_dir/bin/inkscape' \
)

마지막 코드를 실행하면: 여기에 이미지 설명을 입력하세요.

관련 정보