Bash 使用wc创建文件的Shell脚本

Bash 使用wc创建文件的Shell脚本,bash,shell,Bash,Shell,我必须编写一个shell脚本,将一个文件放在用户的目录中(用户放在参数中),该文件包含有关参数中传递的文件的信息 如果存在选项-c,它将创建一个名为count的文件,其中包含传入参数的文件的行数、字数和字符数 如果存在选项-d。它将删除在参数中传递的目录中名为count的文件。我们假设传入参数的目录位于shell脚本具有必要权限的目录中 到目前为止,这是我得到的,但它还不起作用 #!/bin/bash while test $# -gt 0; do case "$1" in

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

$#
从不减少,因为您从不使用
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

那么你的问题是什么?祝你好运您说过用户名和文件是作为参数传递的。你在哪里使用这些参数?很抱歉,我的问题不清楚,有什么建议可以让它更好,或者你在这里看到的任何明显的错误,我应该处理吗?这是为了一个任务,我在VMWare上运行的Ubuntu在我尝试以root身份登录时崩溃了(但那是另一回事)。所以我暂时无法真正测试它。