Указатель стека прерывания

Как правило, пропустить переменные, рассчитанные или извлеченные awk awk в оболочку, вы будете следовать этим шаблонам кодирования ...

shell_var=$( awk '{ ...some processing... ; print awk_var }' )

, если у вас есть более одной переменной, вы можете сделать ...

eval "$( awk '{ ...some processing... ; print "shell_var1="awk_var1, "shell_var2="awk_var2 }' )"

Объяснение кода: Уровень оболочки var = $ (awk '...') будет назначать все, что процесс awk будет печатать в переменную оболочки. Поскольку вы можете назначить только одно значение этим означает, что вам нужен другой подход для двух или более переменных назначений. Один из подходов - позволить awk распечатать все задание, скажем awk '{print "varname =" значение}' ; Конструкция оболочки $ (...) снова будет расширена до выхода встроенного вызова AWK, в данном случае назначение. И это расширенное присваиваемое команда Shell, чтобы стать активным, вам нужна оболочка, чтобы поручить его оценить; EVAL - это команда, которая делает это. Разница в первом (простом) случае состоит в том, что вы можете позволить awk печатать несколько заданий (разделенных пробелом), а EVALL все в одном.

Я дам пример с входом и выходной переменной и некоторым расчетом ...

number=42
square=$( awk -v NUM="$number" 'BEGIN{ print NUM*NUM }' )
echo "$square"

Надеюсь, что уточняет параметр, проходящий в обоих направлениях.

0
22.08.2015, 15:44
1 ответ

Кажется, что никто больше не знает.

There has been a 64-byte gap at the end of the irq stack for at least 12 years. It predates git history, and I can't find any good reason for it. Remove it. What's the worst that could happen?

http://git.kernel.org/linus/4950d6d48a0c43cc61d0bbb76fb10e0214b79c66

0
28.01.2020, 04:55

Теги

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