【问题标题】:Bash Script: How to use variables from listBash 脚本:如何使用列表中的变量
【发布时间】:2013-03-27 07:35:56
【问题描述】:

我正在尝试编写一个脚本,该脚本将报告上次在文件夹中更新文件的时间。这些文件夹每天都会创建 例如:/home/user/todaysdate。在 todaysdate 文件夹中存在创建某些内容时创建的文件夹。例如,我们将有 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 中创建的变量,但我无法继续工作。有什么帮助吗?

【问题讨论】:

  • 忽略使用 for 循环修复它。 for LINE in $(cat list.txt) do

标签: bash shell unix loops scripting


【解决方案1】:

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

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

【讨论】:

  • 不幸的是,从文件或 $(ls) 中读取都充满了危险。文件名可以有特殊字符,真正让你感到兴奋。 mywiki.wooledge.org/ParsingLs
猜你喜欢
  • 2021-11-04
  • 2010-11-21
  • 1970-01-01
  • 2017-04-03
  • 2010-12-13
  • 1970-01-01
  • 2017-04-12
  • 2023-03-30
  • 1970-01-01
相关资源
最近更新 更多