2017-02-07 28 views
-1

Iam在一個連接遠程文件和拉文件的項目上工作,並對這些文件做了一些工作。拉動文件時,遠程有幾個目錄,因此拉動每個文件夾需要花費時間。因此,是否有任何命令可以在下面寫的腳本中使用,以便它可以自動拉出文件夾中的所有文件。如何將文件中的每一行作爲參數傳遞給腳本?

#!/bin/bash 

clear 

ssh [email protected] 'ls SomeFolder/SomeSubFolder' > folders.txt 

cat folders.txt 
echo "Enter the folder name " 
read folder_name 

scp -r [email protected]:SomeFolder/SomeSubFolder/$folder_name/ $folder_name/ 

while IFS= read -r -d '' file; do 
    # single filename is in $file 
    python scanner_new.py /home/nsadmin/Kiran/bash_script_run_files/"$file" 
done < <(find "$folder_name" -type f -print0) 
rm -rf $folder_name 

這裏每次腳本詢問的FOLDER_NAME,當用戶進入folder_name.The腳本去偏遠帶來的文件,並做一些operation.Now第一次,當它進入遠程帶來folders.txt file。所以它包含所有的文件夾名稱。因此使用這些名稱作爲參數傳遞給python scanner.py $file_name

Folders.txt看起來像這樣

2016_9_25 
2016_9_26 
2016_9_27 
2016_9_28 
2016_9_29 
2016_9_30 
2016_9_7 
2016_9_9 
+0

咦? 'import os'行是Python,但其他所有內容都是(原始的)Bash腳本。 – tripleee

回答

1

您可以解析與Python的txt文件:

from os import path 

def do_stuff_with_folder(folder_name): 
    folder_name = folder_name.strip() 
    script_name = path.join("/home/nsadmin/Kiran/bash_script_run_files/", folder_name) 
    if path.exists(folder_name): 
    print "Do stuff with folder %s" % folder_name 
    # do stuff with folder_name here 
    else: 
    print "Warning : %s not here" % folder_name 

with open('folders.txt') as folder_names: 
    for folder_name in folder_names: 
    do_stuff_with_folder(folder_name) 

循環是現在的Python裏面,你只需要調用上述腳本:

python scanner_new.py 
相關問題