Проверить, изменился ли файл в репозитории SVN.

Расширения фигурных скобок Bash могут генерировать числа с ведущими нулями ( начиная с bash 4.0 alpha + ~ 2009-02-20 ):

$ echo {001..023}
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023

Итак, вы можете сделать:

for a in {001..218}; do  echo "bvrprdsve$a; $(ssh -q bvrprdsve$a "echo \$(free -m|grep Mem|/bin/awk '{print \$4}';free -m|grep Swap|/bin/awk '{print \$4}')")"; done >> /tmp/svemem.txt

Но давайте немного заглянем внутрь команды:

  1. Вы дважды вызываете free, используя grep, а затем awk:

     free -m | grep Mem | / bin / awk ' {print \ $ 4} '; 
    free -m | grep Swap | / bin / awk' {print \ $ 4} '
     

    Все можно свести к одному вызову free и awk :

     free -m | / bin / awk '/ Mem | Swap / {print \ $ 4}' 
     
  2. Кроме того, внутренняя команда могла быть уменьшено до этого значения:

     cmd = "echo \ $ (free -m | / bin / awk '/ Mem | Swap / {print \ $ 4}')" 
     

Затем весь сценарий будет выглядеть так:

b=bvrprdsve;
f=/tmp/svemem.txt;
cmd="echo \$(free -m|/bin/awk '/Mem|Swap/{print \$4}')";
for a in {001..218}; do echo "$b$a; $(ssh -q "$b$a" "$cmd")"; done >> "$f";

2
29.06.2017, 13:34
1 ответ

Решение, которое я принял:

if svn diff -r BASE:HEAD./doc/guidelines/typesetter-guidelines.tex | grep -q ^
    then echo "Out of date"
    else echo "Updated"
fi 

Есть ли противопоказания? Могу ли я сделать лучше, чем это?

0
27.01.2020, 22:39

Теги

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