0

たとえば、現在のディレクトリには1xと2xの2つのファイルがあります。次のbashスクリプトを使用してそれらを見つけます。しかし、私は何も得られません:

#!/bin/bash

var=x
pattern=`printf "'%s'" "*${var}"`
echo $pattern
find -name $pattern

上記のスクリプトを機能させるために、findの前にevalを置くことができます。なぜここでevalが必要なのですか?そして、evalを使用せずにそれを行う方法はありますか?

4

1 に答える 1

1

一重引用符で囲む必要はありません。拡張を禁止するだけで済みます。

var=x
pattern="*$var"
find -name "$pattern"
于 2012-07-17T08:00:02.363 に答える