我有一个作业,其中我将文件模式传递给函数,如下所示:
line=FILE*.txt
getFlag $line
而函数如下:
function getFlag
{
filepattern=$1
echo "File pattern is: $filepattern"
}
我需要输出为
File pattern is: FILE*.txt
当我得到输出作为文件夹中存在的匹配文件名时,如下所示:
File pattern is: FILE123.txt
虽然我将文件模式作为变量传递给函数,但它不会阻止变量扩展,并且与变量中的模式匹配的文件名正在被传递。
非常感谢上述任何帮助。
答案1
作为伊尔卡丘 说,您可以用单引号或双引号引用传递给此函数的参数:
line='FILE*.txt'
或者
line="FILE*.txt"
那些告诉 Bash 执行不替代或一些分别进行替换而不进行文件名扩展。
另一种选择是转义*
when 设置行,然后使用引号将参数传递给函数:
line=FILE\*.txt
getFlag "$line"