Список файлов параллельной загрузки Curl

Ваш сценарий:

#!/bin/bash
if [ $# != 2 ]; then
    echo "2 arguments are required "
    exit
else
    x=$1
    y=$2
    sum = $x + $y
    echo ` sum = $sum | bc `
fi
  1. Все замены переменных должны быть заключены в двойные кавычки: http://unix.stackexchange.com/questions/171346/security-implications-of-forgetting- to-quote-a-variable-in-bash-posix-shells
  2. Арифметическое сравнение неравенства выполняется с помощью [... -ne ...] .
  3. Диагностический вывод, то есть ошибки и предупреждения, должен переходить к стандартной ошибке.
  4. При выходе из состояния ошибки ненулевой статус выхода должен быть возвращен вызывающей оболочке.
  5. В заданиях нельзя использовать пробелы вокруг = .

Помня об этом, ваш код становится

#!/bin/sh

if [ "$#" -ne 2 ]; then
    echo >&2 'Expected two arguments'
    exit 1
fi

printf 'sum = %f\n' "$( printf '%f + %f\n' "$1" "$2" | bc )"

. Альтернативно, с парой расширений bash :

#!/bin/bash

if (( $# != 2 )); then
    echo >&2 'Expected two arguments'
    exit 1
fi

printf 'sum = %f\n' "$( bc <<<"$1 + $2" )"

С промежуточными переменными:

#!/bin/bash

if (( $# != 2 )); then
    echo >&2 'Expected two arguments'
    exit 1
fi

x="$1"
y="$2"
sum="$( bc <<<"$x + $y" )"
printf 'sum = %f\n' "$sum"

Измените форматирование printf строка в соответствии с вашими потребностями. Если вам, например, требуется два десятичных знака, используйте %. 2f вместо % f .

1
10.09.2017, 04:59
1 ответ
seq 50000 |
  parallel -P 10 curl -r 0-50000 -L '"http://domain.com/teste.php?a=2&b=3&name="'{} -o {}.html -a {}.log 
1
28.01.2020, 00:55

Теги

Похожие вопросы