различие в сценарии sh между kubuntu 14.04 и 16.04

Я перемещаюсь от Kubuntu 14.04 до 16,04 путем запуска с новых 16,04 установок и портирования моего кода и вижу различие в обработке сценария между этими двумя версиями.

Вот установка. Я нахожусь в каталоге, содержащем и исполняемый файл (dtc) и подкаталог, содержащий sh сценарий (dtc-версия). Если 'dtc' вызывается с-v аргументом, он просто печатает свою версию. Вот соответствующая часть 'dtc-версии':

#!/bin/sh

dtc="$*"
MAJOR=$($dtc -v | head -1 | awk '{print $NF}' | cut -d . -f 1)
...

В 14,04, я могу успешно выполнить это как

scripts/dtc-version dtc

В 16,04, тот же самый вызов перестал работать следующим образом:

scripts/dtc-version.sh: line 4: dtc: command not found

Я могу выполнить его успешно через этот вызов:

scripts/dtc-version ./dtc

В обеих версиях моя оболочка является ударом, и мой $PATH идентичен и НЕ включает '.'

Если я добавляю '.' к своему пути, 16,04 работ версии с помощью неукрашенного 'dtc' аргумента однако, который не является приемлемым решением как bitbake вопли во мне, если я имею в своем пути.

0
задан 26 September 2017 в 12:00

1 ответ

@glenn jackman дал соответствующее представление. Оказывается, что в какой-то момент в моей старой системе 'dtc' был скопирован в '/usr/bin'. В моей старой системе, type -a dtc уступил dtc is /usr/bin/dtc, в то время как в моей новой системе она уступила bash: type: dtc: not found.

Это - вся часть безумно сложной системы сборки со всеми видами шагов установки, и это несколько раз превращалось. Несмотря на следующий ряд рабочих инструкций, я, должно быть, пропустил шаг. Я не произошел со мной, попытка 'вводит' меня, потому что, очевидно, который не мог быть проблемой ;-)

Благодаря всему, что прокомментировало!!!

0
ответ дан 2 November 2019 в 05:11

Другие вопросы по тегам:

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