passa o nome do arquivo (com espaço no caminho) como argumentativo para um aplicativo de vinhos em um script bash

2

Eu quero luanch um App vinho com a passagem de um arquivo como argumento. Eu tenho dois arquivos, com o primeiro eu não tenho nenhum problema, mas quando há um espaço no caminho, o vinho não consegue lidar com o endereço corretamente. aqui estão esses dois arquivos:

/home/op/Doc/test.pdf

/ home / op / doc / teste vs space.pdf

da linha de comando Eu posso iniciar o aplicativo com ambos os arquivos usando este comando:

[/home/op@box ~]: wine "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" "z:Docs/test.pdf"

[/home/op@box ~]: wine "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" "z:Docs/test vs space.pdf"

mas quando quero colocar isso em um script (para luanch mais tarde com outro programa, ranger) não consigo iniciar o programa com arquivos de teste. O primeiro script funciona bem com aqueles que não têm espaço no endereço, mas o segundo não funciona e apenas almoça o aplicativo sem abrir o arquivo pdf:

Script 1: trabalhe sem espaço:

#!/bin/bash
Filename="z:${1//\//\}"

wine "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" $Filename 

Script 2: não funciona em nenhum dos casos

#!/bin/bash
Filename="z:${1//\//\}"
Filename='"'$Filename'"'

wine "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" $Filename 

echo $Filename

Eu não posso chegar onde está errado com o script (em comparação com os comandos emitidos manualmente no shell). O segundo script não abre nenhum tipo de arquivo, com ou sem espaço no endereço.

p.s. há também scripts semelhantes aqui mas eles sofrem do mesmo problema, ou seja, não podem lançar o pdf com um espaço no endereço.

    
por SdidS 18.06.2014 / 18:19

1 resposta

1

Eu vejo vários erros de digitação, erros no seu script que podem impedir que ele seja executado corretamente:

#!/bin/bash
Filename="z:${1//\//\}"
# Filename='"'$Filename'"'
# you can just leave this line, the triple quoting is unnecessary anyway

wine "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" "$Filename" # it's better to quote variables containing strings

echo "$Filename" # the same here
    
por 18.06.2014 / 20:53