2017-07-17 71 views
1

我已经写了一段代码,但是我在使用bash脚本中的双循环时遇到问题。此脚本应读取给定目录中的所有文件,以便上传,但“XYZ”的值会针对每个文件进行更改。每次读取要上传的新文件时,是否有办法让代码要求我输入“XYZ”? (如果可能,读取文件的名称)“请输入'读取文件名'的XYZ值'”我想不出任何可能的方式。我也有一个文件中列出的XYZ值在不同的目录中,所以也许可以像我为路径做的循环那样调用它。我可能实际上需要使用两种情况以及...脚本内的第二个循环或要求输入值

#!/bin/bash 
FILES=/home/user/downloads/files/ 
for f in $FILES 
do 
curl -F pitch=9 -F Name='astn' -F 
"[email protected]/home/user/downloads/files;$f" -F "pass 1234" -F "XYZ= 1.2" - 
F time=30 -F outputFormat=json 
"http://blablabla.com" 
done 
+0

看看使用读取命令 –

+0

我可以问它的单个案件,但我不能让它读取所有要问一个1实际上...... – NapolyoN

+0

那么在代码中读取? –

回答

0

请尝试以下一次。

#!/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 
"[email protected]/home/user/downloads/files;$f" -F "pass 1234" -F "XYZ= 1.2" - 
F time=30 -F outputFormat=json 
"http://blablabla.com" 
done 

我已经进入内环路的读取命令,这样每次它会提示用户输入一个值,因为您没有提供有关您的要求,所以我还没有完全测试它的更多细节。

+0

这正是我想要的,但是这给出了一个错误:警告:非法格​​式化的输入字段! curl:选项-F:在这里用得不好 – NapolyoN

+0

在代码中将“$ Name”更改为$ Name,然后让我知道它是如何实现的。 – RavinderSingh13

+0

错误仍然完全相同。我知道代码正在工作,当我在代码中输入-F“Name = Jack”并运行它,但是像这样它不起作用,所以问题是echo-r​​ead循环:/ / – NapolyoN

1

问题实际上是论点。通过将其更改为:

-F Name="$Name" 

解决了这个问题。尝试链接参数(例如$ Name或“$ Name”)会导致错误的接收。

相关问题