grep 'PATTERN' "$sourcefile" >compressedfile
if [ -s compressedfile ]; then
gzip -f compressedfile
else
rm -f compressedfile
fi
Тест -s
будет верным, если данное имя файла существует и если оно ссылается на файл, размер которого больше нуля. Файл будет существовать (перенаправление всегда создает файл, если он еще не существует )и размер будет больше нуля, если был какой-либо результат от grep
.
Флаг -f
для gzip
принудительно сжимает, даже если файл будет увеличиваться (, что будет происходить, если он мал для начала ).
То же самое, почти (, так как он не сжимает вывод grep
, если дляgrep
)возникает какая-то ошибка чтения/записи, но использует статус выходаgrep
:
if grep 'PATTERN' "$sourcefile" >compressedfile; then
gzip -f compressedfile
else
rm -f compressedfile
fi
или просто
grep 'PATTERN' "$sourcefile" >compressedfile && gzip -f compressedfile
rm -f compressedfile
Здесь rm
попытается удалить несжатый файл в любом случае, но поскольку мы используем rm -f
, об ошибке не будет сообщено, если файл не существует (его не будет, если gzip
сжал его ).
В самом общем случае я бы не советовал сохранять результат grep
в переменной, так как это может вернуть гигабайты данных (мы этого не знаем ).
Я нашел решение.
Все, что мне нужно сделать, это просто добавить IP-адрес и доменное имя в файл /etc/hosts
.
Вот так:
Этот хак решил мою проблему.
Скорее всего, у вас проблема с DNS или сетью. Если вы посмотрите на полученное сообщение об ошибке, оно указывает на проблему разрешения имен.
Resolving wordpress.org(wordpress.org)...failed: Temporary failure in name resolution.
wget: unable to resolve host address 'wordpress.org'
ping -c1 8.8.8.8
, который является DNS-сервером Google. /etc/resolv.conf
файла, который содержит серверы DNS-преобразователей (, обычно предоставляемые вашим интернет-провайдером, гипервизором или DHCP-сервером ). Вы также можете попробовать пропинговать эти IP-адреса.
nameserver 9.9.9.9
nameserver 8.8.8.8
nameserver 8.8.4.4
nslookup wordpress.org 9.9.9.9
/etc/nsswitch.conf
. Найдите строку вроде hosts: files dns mdns4
и строку видаorder hosts,bind,nis