我试图获取与模式匹配的第一个文件并在语句中使用它。使用与中找到的相同的步骤如何从通配符扩展中获得第一个匹配项?我写了以下内容:
#!/bin/bash
files=("*.sql")
firstfile=${files[0]}
echo $firstfile
echo "The first file is $firstfile"
当我运行这个时,输出是:
sql文件.sql
第一个文件是 *.sql
为什么值会$firstfile
根据上下文而变化?
答案1
最后一行打印 $firstfile 中的实际内容。
第一个 echo 通过文件系统扩展 $firstfile ,因为您没有使用双引号。
答案2
删除文件行中的引号,剩下:
#!/bin/bash
files=(*.sql)
firstfile=${files[0]}
echo $firstfile
echo "The first file is $firstfile"