bash脚本无法在windows linux子系统上处理空格和破折号
我在Windows10机器上运行Linux子系统。我编写了一个脚本,从jenkins服务器下载最新版本,重命名并保存在Windows中映射的Onedrive上。问题是在运行脚本时,路径中的空格和破折号没有得到很好的处理 脚本如下所示:bash脚本无法在windows linux子系统上处理空格和破折号,bash,shell,path,space,hyphen,Bash,Shell,Path,Space,Hyphen,我在Windows10机器上运行Linux子系统。我编写了一个脚本,从jenkins服务器下载最新版本,重命名并保存在Windows中映射的Onedrive上。问题是在运行脚本时,路径中的空格和破折号没有得到很好的处理 脚本如下所示: #!/bin/bash path=$(echo "OneDrive - Atos") echo $path echo "/mnt/c/Users/A474998/$xpath/" filename=$(echo "
#!/bin/bash
path=$(echo "OneDrive - Atos")
echo $path
echo "/mnt/c/Users/A474998/$xpath/"
filename=$(echo "\"/mnt/c/Users/A474998/$path/___Software/SIP_CP100.img\"")
echo $filename
curl http://jenkins.devices-dev.global-intra.net/view/mainline/job/we1_cp100_sip_arm_nightly/lastStableBuild/artifact/vobs/Opera_Build/Nightly/SIP/WP_LO_CP100/cruise/opera_bind.SIP.WP_LO.nand.img --output $filename
这是我运行脚本时的输出
bokos@DESKTOP-DLETB9D:~$ ./testget
OneDrive - Atos
/mnt/c/Users/A474998//
"/mnt/c/Users/A474998/OneDrive - Atos/___Software/SIP_CP100.img"
curl: option -: is unknown
curl: try 'curl --help' or 'curl --manual' for more information
我在调试模式下运行这个脚本,这是输出
bokos@DESKTOP-DLETB9D:~$ sh -x ./testget
+ echo OneDrive - Atos
+ path=OneDrive - Atos
+ echo OneDrive - Atos
OneDrive - Atos
+ echo /mnt/c/Users/A474998//
/mnt/c/Users/A474998//
+ echo "/mnt/c/Users/A474998/OneDrive - Atos/___Software/SIP_CP100.img"
+ filename="/mnt/c/Users/A474998/OneDrive - Atos/___Software/SIP_CP100.img"
+ echo "/mnt/c/Users/A474998/OneDrive - Atos/___Software/SIP_CP100.img"
"/mnt/c/Users/A474998/OneDrive - Atos/___Software/SIP_CP100.img"
+ curl http://jenkins.devices-dev.global-intra.net/view/mainline/job/we1_cp100_sip_arm_nightly/lastStableBuild/artifact/vobs/Opera_Build/Nightly/SIP/WP_LO_CP100/cruise/opera_bind.SIP.WP_LO.nand.img --output "/mnt/c/Users/A474998/OneDrive - Atos/___Software/SIP_CP100.img"
curl: option -: is unknown
curl: try 'curl --help' or 'curl --manual' for more information
如果我从调试模式手动运行该命令,我可以下载该文件并将其保存在正确的Onedrive位置
bokos@DESKTOP-DLETB9D:~$ curl http://jenkins.devices-dev.global-intra.net/view/mainline/job/we1_cp100_sip_arm_nightly/lastStableBuild/artifact/vobs/Opera_Build/Nightly/SIP/WP_LO_CP100/cruise/opera_bind.SIP.WP_LO.nand.img --output "/mnt/c/Users/A474998/OneDrive - Atos/___Software/SIP_CP100.img"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 22.2M 100 22.2M 0 0 747k 0 0:00:30 0:00:30 --:--:-- 470k
然后在脚本中复制此命令
#!/bin/bash
curl http://jenkins.devices-dev.global-intra.net/view/mainline/job/we1_cp100_sip_arm_nightly/lastStableBuild/artifact/vobs/Opera_Build/Nightly/SIP/WP_LO_CP100/cruise/opera_bind.SIP.WP_LO.nand.img --output "/mnt/c/Users/A474998/OneDrive - Atos/___Software/SIP_CP100.img"
当我执行它时,文件将被下载并保存在正确的位置
bokos@DESKTOP-DLETB9D:~$ ./testget
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 22.2M 100 22.2M 0 0 790k 0 0:00:28 0:00:28 --:--:-- 868k
我试过很多与“”的组合``
我无法重命名Onedrive的路径以删除空间和破折号。
所以我真的很困惑,我不知道我做错了什么。
任何帮助都将不胜感激。提前感谢您的时间。双引号引用变量:
curlhttp://jenkins.devices-dev.global-intra.net/view/mainline/job/we1_cp100_sip_arm_nightly/lastStableBuild/artifact/vobs/Opera_Build/Nightly/SIP/WP_LO_CP100/cruise/opera_bind.SIP.WP_LO.nand.img --输出“$filename”
hi@choroba我尝试过这是输出bokos@DESKTOP-DLETB9D:~$./testget%Total%已接收%Xferd平均速度时间当前数据加载上载总花费的左速度0 0 0 0--::-->------------------0警告:失败要创建文件“/mnt/c/Users/A474998/OneDrive-警告:Atos/\uuuuu Software/SIP\u CP100.img”:没有这样的文件或目录0 22.2M 0 3529 0 5070 0 1:16:33--:::--1:16:33 5063 curl:(23)写入正文失败(0!=3529)
您没有“mnt
目录。您有mnt
目录。所以不要做$(echo“\”
,只要filename=“字符串”
GREAT..它现在起作用了!谢谢你们!双引号引用变量:curlhttp://jenkins.devices-dev.global-intra.net/view/mainline/job/we1_cp100_sip_arm_nightly/lastStableBuild/artifact/vobs/Opera_Build/Nightly/SIP/WP_LO_CP100/cruise/opera_bind.SIP.WP_LO.nand.img --输出“$filename”
hi@choroba我尝试过这是输出bokos@DESKTOP-DLETB9D:~$./testget%Total%已接收%Xferd平均速度时间当前数据加载上载总花费的左速度0 0 0 0--::-->------------------0警告:失败要创建文件“/mnt/c/Users/A474998/OneDrive-警告:Atos/\uuuuu Software/SIP\u CP100.img”:没有这样的文件或目录0 22.2M 0 3529 0 5070 0 1:16:33--:::--1:16:33 5063 curl:(23)写入正文失败(0!=3529)
您没有“mnt
目录。您有mnt
目录。所以不要做$(echo“\”
,只要filename=“字符串”
就好了。.它现在起作用了!谢谢你们!