当我通过USB连接时,我尝试编写一个简单的bash脚本来访问我的Android设备,但我对此有点新意,所以我很难用简单的命令。
我写的:
#!/bin/bash
MOBILE="/run/user/${UID}/gvfs/mtp*/Internal shared storage"
cd ${MOBILE}/
我得到了什么:
./mobile.sh: line 5: cd: /run/user/1000/gvfs/mtp*/Internal: No such file or directory
如何让它理解路径中的空格?
编辑:我试过这种方式:
#!/bin/bash
MOBILE="/run/user/${UID}/gvfs/mtp*/Internal\ shared\ storage/"
CONTAINER="/media/ecrypted/"
cd "$MOBILE"
我得到了:
./mobile.sh: line 6: cd: /run/user/1000/gvfs/mtp*/Internal\ shared\ storage/: No such file or directory
但如果我在终端cd /run/user/1000/gvfs/mtp*/Internal\ shared\ storage/
上手动运行,它就可以运行。
答案 0 :(得分:1)
我可以通过解决方法来实现:
cd /run/user/${UID}/gvfs/mtp*/Internal\ shared\ storage/
MOBILE=$(pwd)
答案 1 :(得分:-1)
您的错误发生在./Internal shared storage
的空格处。如果要使用此方法,则需要在变量名称中包含引号,例如
#!/bin/bash
MOBILE="/run/user/${UID}/gvfs/mtp*/Internal shared storage"
cd "${MOBILE}/"
这应该可以解决问题。以下是相关文章。
BASH Script to cd to directory with spaces in pathname
修改强>
请注意,如果您使用此方法,则不需要字符串上的反斜杠转义符。引用就足够了,这就是为什么上面的修复无效。