如何将自带双引号的$sourcePath变量原样传递给命令的--path参数
Shell变量带空格传递给命令参数解决方案
问题根因
该问题由Shell的分词特性导致:直接使用未加引号的$sourcePath时,Shell会将变量值中的空格识别为参数分隔符,把原本的单个路径拆分为"/My、Data、Folder"三个独立参数传递给命令,导致--path选项无法正常识别。
正确写法
无论你是否需要保留变量内的双引号内容,正确写法都是给变量外层包裹双引号:
--path "$sourcePath"
该写法会强制Shell将整个变量值作为单个完整参数传递,完全匹配你手动书写--path "/My Data Folder"的执行效果。
常见错误说明
- 若你之前使用的是
--path '$sourcePath':单引号会阻止Shell展开变量,命令实际收到的是$sourcePath字符串本身,无法识别。 - 若上述写法仍未生效,可执行以下命令查看变量实际内容,排查是否存在多余的换行、转义字符等异常:
declare -p sourcePath
内容的提问来源于stack exchange,提问作者Suhas
相关产品推荐
相关产品推荐

