我无法知道如何输出保存系统设备上文件的 Linux 目录中文件名中包含“tty”的所有文件的计数。
答案1
ls /dev/tty* | wc -w
答案2
首先,您需要找到一种列出这些文件的方法。保存设备文件的目录是
/dev
所以列出这些文件的命令是
echo /dev/*tty*
(请注意,这不仅包括 VGA 控制台,例如/dev/tty5
,还包括串行端口,例如/dev/ttyS0
或/dev/ttyUSB0
。)
有一个命令可以计算文本输入中的单词数:wc
。所以你可以这样得到计数:
echo /dev/*tty* | wc
仅当文件名不包含任何空格时这才有效。如果您逐行列出文件名并计算行数,该命令可能会更强大,但仍然不理想;仅当文件名包含换行符时才会中断:
ls /dev/*tty* | wc -l
脚本中更可靠的方法是获取文件名列表作为列表并计算其长度。通配符扩展为名称列表;当列表为空时有一种特殊情况:通配符不会扩展。
set -- /dev/*tty*
if [ $# -eq 1 ] && ! [ -e "$1" ]; then
set --
fi
echo "There are $# matching files"
练习:上面的代码片段是否适用于任何通配符模式(即,是否存在一种通配符模式,当有一个文件时,代码片段会报告 0 个文件,反之亦然)?