STDOUT в качестве аргумента в bash / Makefile и правильно обрабатывать пространство

Вы установили / etc / postfix / sasl_passwd для хоста ретрансляции, обычно это необходимо для ретрансляции почты. Также mydestination попробуйте установить его только на localhost и посмотрите, что произойдет. Надеюсь, это поможет

1
21.02.2017, 13:13
3 ответа

Вы можете использовать массивы:

# Get all example files in an array
examples=(etc/*.example)
# Strip the .example suffix from every element of the array
make "${examples[@]%.example}"

Или, если у вас есть GNU find, sed и xargs (то есть с поддержкой нулевого разделителя):

find etc -iname '*.example' -print0 | sed -z 's/\.example$//' | xargs -0 make
2
27.01.2020, 23:19

Создание списка имен файлов, разделенных нулями, и передача их в make через ] xargs :

for name in /etc/*.txt.example; do
    printf '%s\0' "${name%.example}"
done | xargs -0 make
2
27.01.2020, 23:19

Сначала создайте файлы примеров, а затем создайте

set etc/*.tbl.example
N="shift $#"
for arg
do
   $N; N=;
   set X ${1+"$@"} "$(expr "$arg" '\(.*\).example')"; shift       
done
# and then...
make ${1+"$@"}
0
27.01.2020, 23:19

Теги

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