2

Linuxサーバーに接続してコマンドを実行するために、winXPでplinkを使用しようとしています。私が実行しているコマンドラインは次のとおりです。

plink some_profile cd "$(echo 'T:\somedir\somesubdir with space in it\' | sed 's_\\_/_g' | sed 's_T:_/media/drive1_g')";unrar x 'somefile.rar'

このコマンド部分 (cd から開始) を Linux ボックスで直接実行すると、完全に機能します。しかし、plink で実行すると、次のエラーで失敗します。

bash: line 0: cd: /media/drive1/somedir/somesubdir: No such file or directory

plink を実行するときにコマンドを正しく引用していないと思うので、ディレクトリ内のスペースを処理するために必要な引用符を転送していません。これが機能するように引用する方法についてのアイデアはありますか?

なぜ私がこれを行っているのか不思議に思っているかもしれませんが、これは基本的に、現在強調表示しているファイル (samba マウント) を unrar できる Directory Opus で実行しているスクリプトです。ディレクトリとファイル名がスクリプトに渡され、リモート ボックスでそのファイルが unrar されます。

ありがとう!

編集:Mikel からの応答のおかげで問題は解決しました。これは、他の誰かが後でこれに出くわした場合に備えて、現在機能する行です...

plink some_profile cd \"$(echo 'T:\somedir\somesubdir with space in it\' | sed 's_\\_/_g' | sed 's_T:_/media/drive1_g')\";unrar x 'somefile.rar'

4

1 に答える 1

2

別のレベルの引用符を追加する必要があります。

plink some_profile cd "\"$(echo 'T:\somedir\somesubdir with space in it\' | sed 's_\\_/_g' | sed 's_T:_/media/drive1_g')\"";unrar x 'somefile.rar'

これは、Windows 側で 1 レベルの引用符が必要であり、Linux 側で 1 レベルの引用符が必要だからです。

于 2011-04-24T23:04:55.027 に答える