Я не думаю, что можно легко добавить диапазоны, но я думаю (не может протестировать это прямо сейчас), что тот же эффект может быть достигнут путем добавления следующего к .ssh/ssh_config:
Host *.github.com
HostKeyAlias github-server-pool.github.com
Затем, Вы добавили бы ключ к known_hosts файлу под именем github-server-pool.github.com.
Предположение: хост github-server-pool.github.com не существует или никогда не подключается с через SSH.
Идея позади него, то, что ssh будет использовать ключевой github-server-pool.github.com в качестве ключа к поиску общедоступный ключ хоста для всех хостов домена github.com.
]Bash не может выполнять сравнение с плавающей запятой. Вам нужно обратиться к другому инструменту, здесь я показываю []bc[
] входные данные для чтения из строки bash []here-string[].[
]Используйте команду []read[
] для извлечения полей из строк вашего файла вместо того, чтобы вызывать []cut[
] несколько раз.[
]Вы не можете вставить двойные кавычки внутри строки с двойными кавычками, не экранируя их. Используйте []printf[
] для того, чтобы сделать кавычки немного проще.[
#!/bin/bash
while IFS=: read dri nu tot fre rest_of_line; do
if [[ $(bc <<< "$fre > 2") == "1" ]]; then
color=81F781
else
color=B40404
fi
printf '<td align="Center" bgcolor="#%s">%s</td>' $color $fre >>mailbody.html
done < output_10.txt
] [ $fre > 2 ]
Это [ $fre ]
с (пустым) выходом, перенаправленным в файл 2
. Помните, что символ >
вводит выходное перенаправление.
Используйте оператор -gt
для выполнения числового сравнения: [ "$fre" -gt 2 ]
. (Кстати, всегда используют двойные кавычки вокруг подстановок переменных, если не понимаете, почему их нужно пропустить). У Бэша также есть синтаксис [[ ... ]]
, где >
разбирается как оператор сравнения, а не как перенаправление, но этот оператор выполняет лексикографическое сравнение, т.е. сравнивает строки, поэтому 9 > 10
.
Бэш не поддерживает плавающую точку. Вы можете вызвать внешнюю программу, например bc
. В качестве альтернативы можно использовать специальный способ сравнения десятичного числа с целым числом:
fre_int=${fre%.*} # truncate the part after the decimal point
if [ "$fre_int" -ge 2 ] && [ "$fre" != 2 ]; then …