引数としてファイルを渡してワインアプリを探し出したいです。ファイルは2つありますが、最初のファイルには問題はありませんが、パスにスペースがある場合、wineはアドレスを適切に処理できません。これらの2つのファイルは次のとおりです。
/home/op/Doc/test.pdf
/ home / op / Doc / test vs space.pdf
コマンドラインからこのコマンドを使用して両方のファイルでアプリを正常に起動できます:
[/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"
しかし、これをスクリプトに入れたい場合(後で別のプログラム、レンジャーで実行するため)、テストファイルを使用してプログラムを起動することはできません。最初のスクリプトはアドレスにスペースがないものでもうまく機能しますが、2番目のスクリプトは機能せず、pdfファイルを開かずにアプリを起動します。
スクリプト1:スペースを使用しないで作業する:
#!/bin/bash
Filename="z:${1//\//\\}"
wine "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" $Filename
スクリプト2:どちらの場合でも機能しない
#!/bin/bash
Filename="z:${1//\//\\}"
Filename='"'$Filename'"'
wine "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" $Filename
echo $Filename
スクリプトのどこがおかしいのかわかりません(シェルで手動で発行されたコマンドと比較して)。2番目のスクリプトは、アドレスのスペースの有無にかかわらず、どのタイプのファイルも開きません。
ps ここにも同様のスクリプトがありますが、それらは同じ問題に悩まされています。つまり、アドレスにスペースを入れてpdfを起動することもできません。