【发布时间】:2015-02-20 14:38:27
【问题描述】:
我是 Linux 新手,我想编写一个 bash 脚本,它可以读取以 LED + 一些数字开头的目录的文件名。(例如:LED5.5.002)
在该目录中只有一个以 LED 开头的文件。问题是这个文件每次都会更新,所以下一次它会是例如 LED6.5.012 和计数。
我搜索并尝试了一点,得出了这个解决方案:
export fspec=/home/led/LED*
LedV=`basename $fspec`
echo $LedV
如果我在终端中一一输入这些命令,它可以正常工作,LedV= LED5.5.002 但如果我在 bash 脚本中运行它,它会给出结果:LedV = LED*
我在寻找另一个解决方案:
a=/home/led/LED*
LedV=$(basename $a)
echo $LedV
但这里还是一样,如果我一个一个地给出它是可以的,但是在一个脚本中:LedV = LED*。
它可能很小,但由于我对 Linux 缺乏了解,我找不到它。那么有人能告诉我哪里出了问题吗?
谢谢!一月
【问题讨论】:
-
/home/led/LED* 扩展到 /home/led/LED
的所有匹配项。因此,例如,如果您说 ls /home/led/LED*,您将得到所有这些(在您的情况下是一个)。我会调试说var=/home/led/LED*。然后echo $var确认它正在正确扩展。 -
a=/home/led/LED* LedV=$(basename $a) echo $LedV不能在同一行工作。试试看:a=/home/led/LED* LedV=$(basename $a); echo "$LedV"
标签: linux bash shell variables filenames