簡體   English   中英

如何在Mac上將ls命令與bash腳本結合使用

[英]how to combine ls command with bash script on a mac

我需要知道如何做一些事情: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;

問題始於您試圖將命令輸出分配給變量的事實。 對於您需要命令替換 ,由彼得和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語法,因為您使用的是其他語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM