如何将文件中的每一行作为参数传递给脚本?
How to pass each line in a file as argument to a script?
我正在做一个连接远程和拉文件的项目,并用这些做一些工作files.While拉文件在远程有几个目录,所以拉每个文件夹是时间taking.So 有没有可以在下面编写的脚本中使用的命令,以便它可以自动提取文件夹中的所有文件。
#!/bin/bash
clear
ssh someName@192.168.X.X 'ls SomeFolder/SomeSubFolder' > folders.txt
cat folders.txt
echo "Enter the folder name "
read folder_name
scp -r someName@192.168.X.X: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
。因此它包含所有文件夹 names.So,并使用这些名称作为参数传递给 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
您可以使用 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
我正在做一个连接远程和拉文件的项目,并用这些做一些工作files.While拉文件在远程有几个目录,所以拉每个文件夹是时间taking.So 有没有可以在下面编写的脚本中使用的命令,以便它可以自动提取文件夹中的所有文件。
#!/bin/bash
clear
ssh someName@192.168.X.X 'ls SomeFolder/SomeSubFolder' > folders.txt
cat folders.txt
echo "Enter the folder name "
read folder_name
scp -r someName@192.168.X.X: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
。因此它包含所有文件夹 names.So,并使用这些名称作为参数传递给 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
您可以使用 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