2017-02-07 31 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 
相关问题