【发布时间】:2011-08-25 09:01:40
【问题描述】:
我正在编写一个 Perl 脚本,我想要一种方法让用户输入一个文件或包含 $ARGV[0] 中文件列表的文件。
我目前的做法是检查文件名是否以@开头,如果是,则将该文件视为文件名列表。
这绝对不是理想的方法,因为我注意到@ 是 bash 中的一个特殊字符(顺便说一句,它有什么作用?我只在 bash 中的 $@ 中看到过它)。
【问题讨论】:
-
'@' 字符对于 shell 来说不是特殊的。它只是特殊参数名称之一,就像'?'在'$?'用于最后一个命令的退出状态。这就是为什么您会看到它专门用作“$@”的原因。在所有其他情况下,shell 没有赋予它任何意义。特别是您可以将其用作文件名中的第一个字符。
-
读取文件的第一行并检查它是否是有效的文件名?