сценарий ssh считал переменную из файла

у меня есть сценарий, который я использую для выполнения различных команд через несколько сайтов на основе числа сайта (см. сценарий ниже), я делаю это путем выполнения ./script-name 121 для выполнения на сайте 121, я могу также выполнить его на нескольких сайтах сразу только путем добавления большего количества чисел. то, что я хотел бы смочь сделать, создают простые текстовые файлы, содержащие группы числа сайта, и прочитали сценарий это вместо того, чтобы вывести число каждый раз, любые идеи

#!/bin/bash
while [ "TT$1" != "TT" ]
do
  if [ "$1" == "6" -o "$1" == "33" -o "$1" == "55" -o "$1" == "74" -o "$1" == "80" -o "$1" == "91" -o "$1" == "169" ]
  then
     NET=4
     ST=$1
  else
    if [ "$1" -lt "251" ]
    then
      NET=1
      ST=$1
    else
      NET=2
      ST=`expr $1 - 250`
    fi
  fi
echo $NET
echo $ST

ssh root@10.$NET.$ST.210 -C "service xvfbd stop && service xvfbd start && service yespayd start && service yespayd status"

shift
done 
0
задан 11 June 2018 в 03:15

1 ответ

Вы хотите циклично выполниться от текстового файла: используйте, в то время как считано
Пример:

while read line
do
  echo -e "$line\n"
done <file.txt

Ваш сценарий может быть похожим на это (я не протестировал его),
выполненный: ./myscript.sh inpufile.txt

#!/bin/bash
#
# This script takes a filename as argument
# The FILE contains a number per line

# Test argument
if [ -z "$1" ]; then
  echo "No argument supplied"
  exit
else
  inputfile=$1
  if [ ! -f $inputfile ]; then
    echo "InputFile "$inputfile" not found"
    exit
  fi
fi
# Loop
while read line
do
  if [ "$line" == "6" -o "$line" == "33" -o "$line" == "55" -o "$line" == "74" -o "$line" == "80" -o "$line" == "91" -o "$line" == "169" ]
  then
     NET=4
     ST=$line
  else
     if [ "$line" -lt "251" ]; then
       NET=1
       ST=$line
     else
       NET=2
       ST=`expr $line - 250`
     fi
  fi
  echo $NET
  echo $ST
  ssh root@10.$NET.$ST.210 -C "service xvfbd stop && service xvfbd start && service yespayd start && service yespayd status"
done <$inputfile
0
ответ дан 29 October 2019 в 03:39

Другие вопросы по тегам:

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