-1

演習を行う必要があります: このテキストを含むファイルがあります

dirA dirB

dirX dirY

dirA dirD

各行には 2 つのディレクトリがあり、スクリプトは最初のディレクトリのファイルが 2 番目のディレクトリに含まれているかどうかを各行で確認する必要があります。スクリプトは次のとおりです。

if [ $# -ne 2 ];then
echo "Error! Insufficient parameters"
exit 1
fi
if [ ! -f $1 ];then
echo "$1 is not a file"
exit 2
fi
if [ -f $2 ];then
echo "$2 already exists"
exit 3
fi

file=$(cat $1)
file_output=$(touch $2)
count=0
dir_a=''
dir_b=''

for i in $file ; do
    if [ $count -eq 0 ];then
        dir_a=$i
        let count=$count+1
        continue
    fi
    if [ $count -eq 1 ];then
        dir_b=$i
        let count=0
        for f in $(ls $dir_a) ; do
            if [ -f $dir_b/$f ];then
                echo "found"
            fi
        done
    fi
done

問題は、最後のカップルをチェックしないことです。上記の例の場合、カップル「dirA dirD」をチェックしません。この奇妙な動作のアイデアはありますか?

4

1 に答える 1

1

..... 何?

while read src dest
do
  for file in "$src"/*
  do
    if [ -e "$dest"/"${file##*/}" ]
    then
      echo "Found: $src $dest"
      break
    fi
  done
done
于 2013-01-17T11:42:59.197 に答える