我必须编写一个shell脚本,将文件放在用户的目录中(用户放在参数中),该文件包含有关参数中传递的文件的信息。
如果选项-c存在,它会创建一个名为count的文件,其中包含在参数中传递的文件的行数,单词和字符。
如果选项-d存在。它会删除参数中传递的目录中名为count的文件。我们假设传入参数的目录位于shell脚本具有必要权限的目录中
这是我到目前为止所得到的,但它还没有工作
#!/bin/bash
while test $# -gt 0; do
case "$1" in
-c)
cd $HOME && wc * > count
;;
-d)
cd $HOME && rm -f count
;;
*)
break
;;
esac
完成
答案 0 :(得分:1)
$#
永不减少,因为您从不使用shift
来减少位置参数的数量。你的循环只处理重复的第一个参数。
#!/bin/bash
while test $# -gt 0; do
case "$1" in
-c)
cd $HOME && wc * > count
;;
-d)
cd $HOME && rm -f count
;;
*)
break
;;
esac
shift # Use this to modify $#
done