Поставщик с MAC-адреса (первые три части)

Похоже, вы запустили задание cron sh или dash вместо bash (В Ubuntu есть разница между bash и sh... Я не знаю, так ли это до сих пор ). Вы должны иметь возможность проверить это с помощью ps ux, когда ваш cron -tmux запущен.

Если был запущен настоящий bash, возможно, он неsource ~/.bashrc:не пытался /bin/bash -iили вручную не загрузил его в ваш сценарий.

Кроме того, в рамках задания cron среда обычно минимальна. Введите envв своем сеансе tmux, чтобы увидеть, что доступно, это может дать вам подсказку.

Если ваш cron запущен от имени пользователя root (, о котором вы не упомянули, поэтому я предположил, что он пользователь ), его bashrc может быть минимальным или отсутствовать, отсюда и уродливая командная строка.

2
16.03.2021, 23:59
2 ответа

с bashу вас уже есть решение, и оно требует двух назначений, но если вам просто нужен вывод, вы можете опустить второе присвоение и напрямую вывести результат как bash, но не поддерживает подстановку вложенных параметров (возможно в будущем будет ).

$ mac='11:22:33:44:55:66'
$ vendor=${mac//:}
$ echo ${vendor::6}

Или используйте cutвместо краткого:

cut -d: -f1,2,3 --output-delimiter= <<<"$mac"
4
18.03.2021, 22:25

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

$ mac=11:22:33:44:55:66
$ echo "$mac" | awk -F':' '{ print $1""$2""$3}'
112233

О расширении вложенных параметров см. этот ответ:

Может ли расширение параметра работать внутри другого расширения параметра?

2
18.03.2021, 22:25

Теги

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