Перечислите IP-таблицы в контейнере Docker

Другой подход заключается в использовании awk ассоциативных массивов, более подробная информация здесь . Эта строка создает требуемый выход:

awk -F '|' '{a[$1] += $3} END{print a["smiths"]}' filename.txt

В качестве побочного эффекта массив сохраняет все другие значения:

awk -F '|' '{a[$1] += $3} END{for (i in a) print i, a[i]}' filename.txt

Output:

smiths 212
denniss 100
olivert 10

-121--5981-

Оболочка знает, что ssh умер и может сбросить терминал.

Отслеживание оболочки bash во время убийства ребенка ssh показывает, что она выполняет несколько вызовов ioctl ().

--- SIGCHLD (Child exited) @ 0 (0) ---
ioctl(255, TIOCSPGRP, [52631])          = 0
ioctl(0, TIOCGWINSZ, {ws_row=25, ws_col=147, ws_xpixel=902, ws_ypixel=329}) = 0
ioctl(0, TIOCSWINSZ, {ws_row=25, ws_col=147, ws_xpixel=902, ws_ypixel=329}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x500, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {c_iflags=0x400, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a31, c_line=0, c_cc[VMIN]=1, c_cc[VTIME]=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x00\x00\x00\x00"}) = 0

-121--108185-

По прошествии многих часов мне ясно, что лучше скопировать сценарий в целевую систему и выполнить его там.

d-i preseed/late_command string cp -a /cdrom/preseed/post-install.sh /target/post-install.sh; in-target /bin/bash /post-install.sh

-5
29.07.2018, 20:41
2 ответа

Баш, в частности, принимает -как синоним --. В примерах, приведенных в ответе на вопрос,

#! /bin/bash -

это используется, чтобы сообщить Bash, что больше никаких опций не следует, так что шебанг работает независимо от имени скрипта --рассмотрим, например, что произойдет, если скрипт будет назван -l.

1
28.01.2020, 05:20

Одиночный дефис по определению является аргументом типа файла, и после аргумента типа файла приложение, совместимое с POSIX, не может проверять параметры.

Двойное тире — это определение POSIX для конца опций. После этого разрешены только аргументы типа файла.

Таким образом, соглашение для обоих отличается, даже если это может привести к похожему результату.

Это не соглашение GNU, а POSIX.

Также обратите внимание, что принято писать:

#!/bin/sh -

или

#!/bin/sh -p

относится ко времени, когда ни специальный аргумент --, ни функция getopt(3)не были известны.

2
28.01.2020, 05:20

Теги

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