我是bash的新手,很抱歉,如果我的问题格式不正确或没有意义:)
我正在尝试做类似的事情:
#..................... previous code where F is defining
filename="$F";
echo "$filename";
find . -name ????? | while read fname; do
echo "$fname";
done;
我想在find命令中使用我的变量$ filename(而不是????),但我不知道如何。我在那里添加一些固定值用于测试目的,例如“abc.txt”(存在并存储在我的变量中),它运行良好,我只是不知道如何在find命令中使用变量。
像
这样的东西find . -name '$filename.txt' | while read fname;
更新:(我在文件夹中有两个文件名相同的文件(.xml和.txt))
find . -type f -name \*.xml | while read F;
do something || echo $F;
cat "$F";
#name without extenssion
filename="${F%.*}";
echo "$filename";
find . -name "$filename.txt" | while read fname; do
echo "$fname";
done;
done;
答案 0 :(得分:2)
这将有效:
filename="$F";
echo "$filename";
find . -name "$filename.txt" | while read fname; do
echo "$fname";
done;
虽然你可以轻松做到:
find . -name "$F.txt" | while read fname; do
echo "$fname";
done;
变量扩展需要双引号(或根本没有引号)。单引号不起作用。