0
このスクリプトをマルチスレッド化するのは難しいです。Bashスクリプトのマルチスレッド化
私はスクリプトを修正することができません。スタックに多くの例がないので、私は何を作り出しているのか分かりません。
#!/bin/bash
function teste(){
for i in $(seq 0 10); do
CONNECT_TIMEOUT=1 # in seconds
A="$1."
B=$i
IP_ADDRESS=$A$B
PORT="${2}"
set +e
data=$(curl --head -vs -m ${CONNECT_TIMEOUT} http://${IP_ADDRESS}:${PORT} 2>&1)
exit_code="$?"
data=$(echo -ne "${data}" | grep "Server: ")
set -e
if [[ ${exit_code} -eq 0 ]]; then
if [[ -n "${data}" ]]; then
echo -ne "${IP_ADDRESS} - ${data}"
else
echo "${IP_ADDRESS} - Got empty data for server!"
fi
else
echo "${IP_ADDRESS} - no server."
fi
done
}
function doexecute(){
set -e
if [[ $# -ne 2 ]]; then
echo "Usage: $(basename "$0") ip_address_number port"
exit 1
fi
threads=10;
threads=$(($threads - 1))
for thread in `seq $threads`
do
teste ${1} &
done
}
doexecute
あなたの質問は不明です。実際の問題は何ですか?あなたはスクリプト内の何かを修正する必要がありますか? bashスクリプトをマルチスレッド化することはできません。同時に複数のコマンドを実行する場合は、ジョブを使用する必要があります。 – arco444
マルチヘッドでこのIPSシーケンスを回転させる必要があります – LucianoMallmann