编写命令行,如果当前目录中的文件数大于文件检查第一行指定的数量,则打印 hello。
这很好用,但我想要一个命令行。有什么想法吗?
firstline=$(head -1 check)
allfiles=$(ls | wc -l)
echo $allfiles $firstline
if (($allfiles > $firstline)); then
echo "hello"
else
echo "oh no"
fi
答案1
您可以使用这个衬垫:
files=( * ); [[ ${#files[@]} -gt $(head -1 check) ]] && echo 'hello' || echo 'oh no'
files
数组将包含当前目录的文件,因此${#files[@]}
显示数组中的元素,即当前目录中的文件数。
check
用 提取首行是数字的文件head -1 check
。
其展开形式如下:
最后如果文件数量大于check
([[ ${#files[@]} -gt $(head -1 check) ]]
)第一行的数量,hello
则打印。
其展开形式如下:
#!/bin/bash
files=( * )
if [[ ${#files[@]} -gt $(head -1 check) ]]; then
echo 'hello'
else
echo 'oh no'
fi