この質問にはすでに回答があります :シェルスクリプトが空白やその他の特殊文字で詰まるのはなぜですか?
(6つの回答)
6年前に閉鎖されました。
Linux
(6つの回答)
6年前に閉鎖されました。
Bashのパスのスペース文字をエスケープしようとしていますが、円記号や引用符を使用しても機能しません。
.shスクリプト:
ROOT="/home/hogar/Documents/files/"
FILE=${ROOT}"bdd.encrypted"
DESTINATION="/home/hogar/Ubuntu\ One/folder"
mv ${FILE} ${DESTINATION}
スクリプトを実行した後(./file
)これが結果です:
mv: target 'One/folder' is not a directory
mv
がなぜ コマンドで文字列を分割します。これを防ぐにはどうすればよいですか?
承認された回答:
echo
を実行した場合は、DESTINATION変数を展開しています これはあなたが得るものです:
echo ${DESTINATION}
/home/hogar/Ubuntu\ One/folder
しかし、mv
これを理解していません:
mv ${FILE} ${DESTINATION}
mv: cannot move '/home/hogar/Documents/files/bdd.encrypted' to '/home/hogar/Ubuntu\\ One/folder': No such file or directory
(何らかの理由で私のmvはより冗長です)
これを防ぐには、代わりに引用符を使用する必要があります:
mv "${FILE}" "${DESTINATION}"
拡張が必要ない場合(以前に拡張しているため)、"$..."
を使用するだけです。 十分なはずです:
mv "$FILE" "$DESTINATION"
G_mass_storage => Udc-coreを使用してファイルでUsbデバイスをエミュレートする:使用可能なUdcが見つかりませんでした–保留中のドライバーのリストに[g_mass_storage]を追加しましたか?
Linux – Grubをアンインストールする方法は?