使用wc创建文件的Shell脚本

时间:2014-08-29 13:30:47

标签: bash shell

我必须编写一个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

完成

1 个答案:

答案 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