-Q внутри присвоения Makefile

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

mkdir -p       another/directory
for   n in     1 2 3 4 5 6 7 8 9
do    mkdir   -p "a$n"
      printf  "$n $n $n 1$n $n $n $n $n\n" >"a$n/a$n.txt"   #1 marks 4th col
done

Вот что я использовал для mv файла:

 mv "a$(((a=$(t=$(printf \\t)
 paste a[1-9]/a[1-9].txt /dev/null |
 sed -e"s/\( *[^ ][^ ]*[ $t]\)\{4\}[^$t]*/\1/g;y| |\n|;q" |
 sort -rn | head -n1))-10))/a${a#1}.txt" another/directory

И вот что я сделал, чтобы проверить, что я все сделал правильно:

cat another/directory/*

9 9 9 19 9 9 9 9

... но я не получил его правильно. Это зависит от того, совпадает ли наибольшее значение с именем файла. This doesn't:

file=$(
    grep -n . ./a[1-9]/a[1-9].txt |
    grep :1: |     cut -d\  -f1,4 |
    sort -rnk2,2
)
mv "${file%%:*}" another/directory
0
13.07.2018, 23:14
1 ответ
LFLAGS := $(LFLAGS) -q

добавляет -qк текущему значению в LFLAGSи устанавливает LFLAGSв результат (как просто -расширенную переменную , так как она устанавливается с помощью:=).

Это влияет на любую команду, заданную в другом месте с помощью $(LFLAGS), добавляя к ней опцию -q. Это не имеет ничего общего с запуском make. Учитывая контекст, я предполагаю, что в обоих случаях(LFLAGSиYFLAGS)-qзаставляет соответствующую команду работать спокойно.

2
28.01.2020, 02:31

Теги

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