2017-07-17 41 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」)會導致錯誤的接收。

相關問題