Ошибка Cron: /bin/sh: 1: 6: не найдено

awk не является оболочкой. awkимеет собственную грамматику, синтаксис и семантику. ${1}не является синтаксически правильным awkкодом, в то время как $1и $"1"являются (и они эквивалентны вawk). В awkэто не замены.

С помощью awk$1относится к первому полю текущей входной записи, а $0относится ко всей входной записи, в то время как в оболочке $1относится к первому позиционному параметру (обычно первый аргумент в командной строке сценария или функции )и $0обычно относится к имени текущей оболочки или сценария оболочки.

Переменные оболочки и awkпеременные также полностью разделены. Вот почему awkимеет флаг командной строки -vдля установки своих переменных, если вам нужно «импортировать» значение из оболочки в ваш скрипт awk:

$ awk -v var="$var" '{...}'

Вы также можете указать awkскрипту значение переменной оболочки, как это:

$ awk '{...}' var="$var"

Это почти то же самое, что и с -v, за исключением того, что переменная varбудет пустой в любом BEGINблоке. Блок BEGINвыполняется до просмотра входных данных, и переменная устанавливается после выполнения такого блока.

Вы также можете

$ awk '{...}' var="$value1" file1 var="$value2" file2

Это приводит к тому, что переменная varполучает значение переменной оболочки $value1непосредственно перед обработкой file1, а затем значение переменной оболочки $value2непосредственно перед обработкой file2.

Если какой-либо файл имеет имя var="$value1"в последнем примере (, например var="42", что является вполне допустимым именем файла Unix ), этот файл не . Кроме того, если шаблон подстановки имени файла оболочки в командной строке выбирает файл, имя которого выглядит как присвоение переменной, это присвоение будет активным в сценарии awk.

0
18.08.2019, 00:59
1 ответ

Такая глупая ошибка. У меня было 1 *лишних. Вместо * * * * 6я ввел * * * * * 6.

2
28.01.2020, 02:29

Теги

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