我有一个任务要求我在屏幕上打印比给定数字长的单词数,比如说 k ,它是从键盘读取的。然后订购结果。直到现在我决定以这种方式尝试:
#!bin/bash
k=0
if [ $# -eq 0 ]
then
echo "No argument supplied."
exit 1
fi
echo -n "Give the minimal lenght of the words : "
read k
for files in "$@"
do
if [ -f "$files" ]; then
echo "$(cat $files | egrep -o '[^ ]{k,}' $files | wc -w) : $files."
else
echo "Error: File $files has not been found."
fi
done | sort -n
我的问题是,每当我在“egrep -o '[^ ]{k,}'”部分中使用 k 尝试这个程序时,它总是给出错误的答案。但是如果我用一个整数替换它,就可以完全按照我的意愿工作。使此代码适用于从键盘读取的 k 的正确方法是什么?这是语法,无法真正理解我应该如何写在那里,尝试了其他方式来喜欢 "$k" , $k , ((k)) ,k
。欢迎任何帮助,如果有人可以给我一个提示吗?我被困住了