有人能解释一下这个 bash 脚本片段是如何工作的吗?
is_text_file() {
perl -e 'exit((-B $ARGV[0])?1:0);' "$1"
}
谢谢。
答案1
Perl 有文件类型测试运算符,这会在其第一个参数上调用。然后,它使用三元运算符将 True/False 转换为 shell 状态 0 (isTxt) 或 1 (not)。该函数没有显式的返回值,因此它返回 perl 命令本身的状态。 Bash 本身在这里几乎什么也不做。
-T File is an ASCII or UTF-8 text file (heuristic guess).
-B File is a "binary" file (opposite of -T).
仔细注意“猜”这个词。