我编写了一段代码,但是在我的bash脚本中制作双循环时遇到了问题。此脚本应在给定目录中逐个读取所有文件以进行上载,但每个文件的“XYZ”值都会更改。我有没有办法让代码每次读取要上传的新文件时都要求我输入“XYZ”? (如果可能的话,读取文件的名称),例如“请输入'读取文件名'的XYZ值'”我想不出任何可能的方法。我也将XYZ值列在不同目录下的文件中,所以也许它可以像我为路径做的do循环一样调用?我可能实际上也需要同时使用这两种情况......
#!/bin/bash
FILES=/home/user/downloads/files/
for f in $FILES
do
curl -F pitch=9 -F Name='astn' -F
"path=@/home/user/downloads/files;$f" -F "pass 1234" -F "XYZ= 1.2" -
F time=30 -F outputFormat=json
"http://blablabla.com"
done
答案 0 :(得分:1)
尝试一次。
#!/bin/bash
FILES=/home/user/downloads/files/
for f in $FILES
do
echo "Please enter the name variable value here:"
read Name
curl -F pitch=9 -F "$Name" -F
"path=@/home/user/downloads/files;$f" -F "pass 1234" -F "XYZ= 1.2" -
F time=30 -F outputFormat=json
"http://blablabla.com"
done
我已在循环内输入了一个读取命令,因此每次它都会提示用户输入一个值,因为您还没有提供有关您的需求的更多详细信息,所以我还没有完全测试它。
答案 1 :(得分:1)
问题实际上是争论。通过将其更改为:
-F Name="$Name"
解决了这个问题。试图链接参数,例如$ Name或" $ Name"导致接收不良。