0

シェルから実行してファイルをダウンロードし、ダウンロードしたファイルに関する情報を出力するカスタム プログラムがありますか?

    sh-3.1$ superdl -l username -p password filename
    Logging in...
    OK
    File: "filename"
    Size: "1100 bytes"
    Type: "text"
    Encryption: "RSA"
    Encoding: "utf-8"
    Done!
4

1 に答える 1

1

以下は、bash で実行する方法の 1 つです。

#!/bin/bash
while read -r var val
do
    [[ $var == Type: ]] && type="$val"
    [[ $var == Encryption: ]] && encryption="$val"
    [[ $var == Encoding: ]] && encoding="$val"
done < <(./superdl -l username -p password filename)

echo "$type $encryption $encoding"

出力:

text RSA utf-8

または、case ステートメントを使用すると、次のようになります。

#!/bin/bash
while read -r var val
do
    case "$var" in
    Type: )
        type="$val" ;;
    Encryption: )
        encryption="$val" ;;
    Encoding: )
         encoding="$val" ;;
    esac
done < <(./superdl -l username -p password filename)

echo "$type $encryption $encoding"

質問の編集に関しては、実際には何も変わりません。できるよ:

#!/bin/bash
for filename in "$@"
do

    while read -r var val
    do
        [[ $var == Type: ]] && type="$val"
        [[ $var == Encryption: ]] && encryption="$val"
        [[ $var == Encoding: ]] && encoding="$val"
    done < <(./superdl -l username -p password "$filename")

    echo "$type $encryption $encoding"
done
于 2013-09-18T13:29:06.177 に答える