Bash脚本:如何使用列表中的变量

时间:2013-04-05 01:44:50

标签: bash shell unix loops scripting

我正在尝试编写一个脚本,该脚本将报告上次在文件夹中更新文件的时间。每天创建文件夹示例:/ home / user / todaysdate。在创建somethng时创建的todaysdate文件夹exsist。例如,我们将有fol1 fol2 fol3。我正在尝试获取一个脚本来登录每个文件夹并显示上一个文件的创建时间。

#!/bin/bash
folder=`date +%Y%m%d`
ssh -q server "cd /home/user/$folder/ ; bash -c "ls -la | uniq" > list.txt

这将创建所制作的不同文件夹的列表。现在我需要ssh到我卡住的每个文件夹。 list.txt的输出将是:     fol1 fol2 fol3

ssh -q server "bash -c \"ls -ltr /home/user/$folder/<Need List Variable Here> | tail -1\"" awk '{print $8}

上面的命令给了我时间。我相信我需要一个while循环来ssh到服务器和list.txt中创建的变量,但我无法继续工作。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

如果list.txt是空格分隔的(例如“fol1 fol2 fol3”),请尝试使用/ in循环的bash:

for folder in $(cat list.txt);
do
    echo $folder;
done

如果list.txt是换行符,则尝试使用bash while循环:

cat list.txt | while read folder;
do
    echo $folder;
done

有关bash循环的详细信息,请参阅此页面。

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html