如何在Mac上将ls命令与bash脚本结合起来

时间:2015-12-01 11:12:35

标签: macos bash automation

我需要知道如何做一些事情: 1.如何使用变量执行ls命令并使用grep过滤结果,然后将结果放入另一个变量

我搜索教程,但无法找到类似的示例,而且我尝试使用语法,但可以使其工作。 所以这里的脚本是我知道错误的语法,但我写的只是为了更清楚我需要什么。

如果有人能告诉我如何在bash中正确连接,我会很高兴。

非常感谢:)

#!/bin/bash
executable=$1;
outputs_inputs=$2;
inputs=ls $outputs_inputs | grep "in";
outpus=ls $outputs_inputs | grep "out";

for i in $inputs; do
 myoutput=$executable < i;
 for j in $outputs; do
  if(opendiff $myoutput j){
   echo j is equal to i's output
  }
 done;
done;

1 个答案:

答案 0 :(得分:1)

问题始于您尝试将命令输出分配给变量。为此,您需要command substitution,正如Peter和chepner所建议的那样 - 反引号``或首选的新形式$(...),否则您只需分配字符串。即使是字符串,由于空白和缺少引用,你分配错误。

inputs=ls $outputs_inputs | grep "in";

^ ----------- ^ ^ --------------------------------- ----- ^那些是两个不同的东西

总结一下,你需要改变

inputs=ls $outputs_inputs | grep "in";
outpus=ls $outputs_inputs | grep "out";

这样的事情

inputs=$(ls $outputs_inputs | grep "in";)
outpus=$(ls $outputs_inputs | grep "out";)

为什么你首先使用 ls 超出了我和本回复的范围。另外,请检查if-then-else语法,因为您的语法是其他内容。