スクリプトが実行されると、シェルスクリプトのパス名に追加の文字が含まれます。

スクリプトが実行されると、シェルスクリプトのパス名に追加の文字が含まれます。

私はMTPデバイスのコンテンツバックアップを部分的に自動化するスクリプトを書いています。続行する前に、nemoがフォルダを開く行を追加して問題のフォルダにアクセスできることを確認しようとしました。スクリプトは次のとおりです。

#!/bin/bash

echo "mtp://[usb:[BUS],[DEVICE]]"
echo -n "Enter BUS: "
read BUS
echo -n "Enter DEVICE: "
read DEVICE
nemo /run/user/1000/gvfs/mtp:host=%5Busb%3A$BUS%2C$DEVICE%5D/Internal%20shared%20storage/

最初の「echo」行はユーザー参照にのみ使用されます。

$ BUSと$ DEVICEが正しく入力された値に置き換えられ、MTPデバイスルートへの正しいパスが生成されましたが、次のエラーメッセージが表示され、次のフォルダが正しく解釈されませんでした。

"Could not find "mtp://[usb:002,036]/Internal%2520shared%2520storage".

Please check the spelling and try again.

[OK]"

2回追加された「25」はどこから来ましたか?スクリプトがnemoで正しいパスを開くようにこの問題をどのように解決できますか?

答え1

%20を空白に置き換え、パス文字列の周りに二重引用符を使用するようにArchemarの提案で私の問題が解決され、フォルダが正しく開かれました。

関連情報