shell ,双循环问题

发布于 2021-11-27 17:26:22 字数 1369 浏览 654 评论 8

公司有个需求,根据文件a 里面的图片名字,去文件b中找到对应的要上传服务器的路径,用curl上传,现在问题来了,执行结果不对(其实是打印字符串的结果就不对),脚本和运行结果如下

脚本内容:

#!/bin/bash

str1=`ls  /home/webdev/downjpg/zhaopian`


arr=$(echo $str1|tr " " "n")
for x in $arr; do


 name=${x%%.*}


 dizhi="123"


  while read myline
 do
   
    var1=${myline%.*}
   
    var2=${var1##*/}
   




    if [ $name == $var2 ]; then
     dizhi=$myline
     echo "find dizhi:"$dizhi
       dizhi=${dizhi#*//}
       dizhi=${dizhi#*/}
      
   break
  fi




done</home/webdev/downjpg/picturesURL.txt
 if [ $dizhi == "123" ]; then
   echo $x>>tupiannotFind.txt
fi
size=`wc /home/webdev/downjpg/zhaopian/$x|awk '{print $3}'`
 echo "name:"$x" ,size:"$size
  
 echo "curl -F flen=$size -F "oldpath=data.mvbox.cn:/$dizhi" -F "file=@./zhaopian/$x"  http://182.118.52.193:8081/ffaceup"
done

运行结果:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

别低头,皇冠会掉 2021-11-29 19:35:04

添加文件a,b截图如下 :

文件a::

文件b:

緦唸λ蓇 2021-11-29 19:20:32

好吧,我不严谨。没想到这一步,话说问题不在这里,因为图片名称没有空格

多彩岁月 2021-11-29 19:11:44

str1=`ls  /home/webdev/downjpg/zhaopian`

arr=$(echo $str1|tr " " "n")

for x in $arr; do

写这些代码的时候你就没想到路径有空格怎么办?

眼眸 2021-11-29 18:13:03

我把 echo 打印命令重定向到文件看了下,内容和上面的运行结果是一样的

臻嫒无言 2021-11-29 17:56:00

应该是换行问题 你把输出重定向的文件再看看.

your_command > output.txt

2021-11-29 15:56:20

大家,是我写的不够清晰吗? 给点建议呗。我自己找好久,都不知道那儿错了

谢绝鈎搭 2021-11-29 05:31:39

请各位大侠指点一二

如此安好 2021-11-28 19:29:41

问题找出来的,用sh +x 调试下,发现变量后面多了r,过滤掉就行了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文