printf 'App:%-10s\tRegion:%-15s\tEnv:%-20s\n' "$1" "$2" "$3"
Это зарезервирует 10, 15 и 20 символов для трех строк, а также оставит -выравнивание строк внутри этого пробела.
Пример сценария:
set -- PROPIA silo2 INT SRO silo3 SYS
while [ "$#" -gt 0 ]; do
printf 'App:%-10s\tRegion:%-15s\tEnv:%-20s\n' "$1" "$2" "$3"
shift 3
done
Выход:
App:PROPIA Region:silo2 Env:INT
App:SRO Region:silo3 Env:SYS
Согласно предложению,
ssh
имеет опцию -o batchmode=yes
, которая предотвращает любое взаимодействие.
пароль не запрашивается
нет подтверждения иностранной подписи
Это приведет к коду ошибки, если соединение не установлено.
Вы можете использовать timeout
в дополнение к ограничению времени выполнения ssh
:
timeout 10 ssh -o ConnectTimeout=2 -o PasswordAuthentication=no -q $x exit
returncode=$?
или
timeout --preserve-status 10 ssh -o ConnectTimeout=2 -o PasswordAuthentication=no -q $x exit
returncode=$?
Обязательно выберите хороший тайм-аут. 2 секунды ConnectTimeout
плюс 8 секунд на бег exit
будет достаточно; даже при высокой нагрузке.