0

嘿,伙计们的标题几乎说明了这一点,但是我将两个变量回显到 BASH 循环中以启动它,并且(据说)使用 acase能够识别它们的位置并运行类似但单独的(缺少 -k 标志第二次绕过)wget声明。我打了我的git checkout,但似乎我没有进入我的案件。我该如何解决这个问题,或者有没有更好的方法来解决这个问题,因为我只是删除了一个 -k 标志?

#!/bin/bash

echo -e "render\nstorage" | while read x; do 

    git checkout "$x"

    case $x in
        $1)
          wget "${WGDOMAIN}" -r -l INF -k -p        \
            --no-check-certificate                  \
            --strict-comments                       \
            --warc-header="Operator: Web Archiver"  \
            --warc-file="$WGDOMAIN"                 \
            --warc-dedup="${WGDOMAIN}.cdx"          \
            --warc-cdx=on 2> session.log
        ;;

        $2)
          wget "${WGDOMAIN}" -r -l INF -p           \
            --no-check-certificate                  \
            --strict-comments                       \
            --warc-header="Operator: Web Archiver"  \
            --warc-file="$WGDOMAIN"                 \
            --warc-dedup="${WGDOMAIN}.cdx"          \
            --warc-cdx=on 2> session.log
        ;;

        $1|$2)
          git add . && git ci -m"Archived: ${DATE}"
          git push origin "$x"
        ;;
    esac
done
4

1 回答 1

1

在没有位置参数的情况下调用您的脚本将不会在 case 语句中执行任何操作,因为 $1 和 $2 是空的。除此之外,最后一个 case 选项 $1|$2 永远不会到达,因为前面的选项将匹配。也许你应该把这些命令从盒子里拿出来。

于 2013-10-02T16:32:30.173 回答