Дождаться появления команды с клавиатуры

В вашей команде awkесть несколько ошибок.

Следующее будет импортировать $argкак переменную awkarg:

awk -F, -v OFS=, -v arg="$arg" '{ $2 = arg; print }' >"$outfile"

$2невозможно интерпретировать как второй позиционный параметр здесь или в вашем коде, поскольку он встречается в одинарных кавычках, а оболочка не раскрывает переменные в одинарных кавычках.

OFSиarg(оба являются переменными awk)устанавливаются с помощью -vв командной строке. Вы не используете -vдля установки OFSи неправильно используете -vперед фактическим кодом awk. Это дало бы вам ошибку (, о которой вы не упоминаете ). На самом деле -OFS,с GNU awkозначает «включить оптимизацию и установить разделитель полей ввода на строку S,».

Обратите внимание: если$arg(переменная оболочки )содержит обратную косую черту, которую необходимо сохранить, лучше вместо этого передать значение через среду, поскольку в противном случае они будут интерпретированыawk:

arg="$arg" awk -F, -v OFS=, '{ $2 = ENVIRON["arg"]; print }' >"$outfile"

Предполагается, что выходной файл должен быть $outfile, а не outfile.

Связанные:

1
06.11.2020, 10:07
1 ответ

В вашей встроенной системе вы включили udevЯ полагаю? И ваша клавиатура / мышь все подключены до начала загрузки? Если это так, то команда udevadm settleвыполнит то, о чем вы просите.

1
18.03.2021, 22:51

Теги

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