您好,我正在尝试创建一个简单的文件,该文件读取文件名和可选的要输出的行数,但我无法让我的脚本接受我分配用于保存文件名的位置参数。
我的代码:
#
# task_4-1.sh filename [howmany] - optional parameter
#
#
#
# Read a file containing the names of and number of albums of artist in the album collection.
# Program will print the N highest lines of Artist with the highest Album count int he collection
# Default N is 10
# One arguement for the name of the input file and a second optional line for how many lines to print.
#!\bin\bash
#Variable to accept the filename will print an error message if this value is left null
filename=${1:?"missing."}
#Optional parameter that controls how many lines to Output to shell
howmany=${2:-10}
sort -nr $filename | head $howmany
当我尝试在命令行上运行代码时:
task_4-1.sh albumnumber.txt 10
我收到错误消息头:10 没有这样的文件或目录。如果我将参数分配给此括号语法:
filename=${filename:?"missing."}
然后我收到错误消息我指定了文件名:“missing”
不知道我在这里做错了什么。
答案1
唯一的问题是你缺少最后一行中的“-n”选项。这按照您预期的方式工作。
sort -nr $filename | head -n $howmany