1

Моя консоль не может распознать команду ic в скрипте bash.

Мне нужно выполнить эту команду, чтобы сделать некоторые вычисления, но я получаю это сообщение ic: command not found .

Как я мог определить это в bash?

3 ответа3

3

Получаемое сообщение об ошибке указывает на то, что команда ic отсутствует ни в одном из каталогов, содержащихся в переменной среды PATH .

Чтобы найти каталоги, в которых bash выполняет поиск исполняемых файлов, введите в командной строке следующую команду

echo $PATH

Если вы знаете, где находится команда ic в вашей файловой системе, вы можете указать полный путь к ic в вашем bash-скрипте, чтобы он не использовал переменную среды PATH для ее поиска.

Допустим, что ic был в каталоге /usr/local/bin тогда в вашем bash-скрипте вы могли выполнить ic, введя.

/usr/local/bin/ic

скорее, чем

ic
2

Сообщение ic: command not found. указано, что команда ic не найдена. Другими словами, он не находится ни в одном из мест, где ваша оболочка ищет команду.

Обычно это происходит потому, что команда находится в текущем каталоге, который (в отличие от окна по умолчанию) не находится в пути поиска по умолчанию.

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

Примеры:

  • /usr/local/bin/ic для запуска программы под названием ic в папке /usr /local /bin /
  • /opt/bin/ic для запуска программы под названием ic в папке /opt /bin /
  • ./ic запустить программу с именем ic в текущем каталоге.
    Обратите внимание, что это не в пути по умолчанию. Если вы добавите его в путь, сделайте его последней записью. Например, используйте PATH=:$PATH:. а не PATH=.:$PATH . ($ PATH - старый путь, colomn - разделитель, точка - текущий каталог.

Если ic является скриптом, вы также можете запустить его, вызвав его интерпретатор.

Например, если ic это bash-скрипт, вы можете использовать /usr/local/bin/bash ic

Если ic является сценарием и текущий каталог уже находится в вашем пути, проверьте следующие три вещи:

  1. Программа (IC) имеет свой е х ecute бита. (Если это не так, тогда chmod +x ic).
  2. В скрипте есть шебанг, указывающий правильного переводчика.
    Шебанг это #! в самой первой строке скрипта. Это должна быть первая строка. Нет пустых строк над ним. Для скрипта bash правильная запись #!/usr/local/bin/env bash . (#!/usr/local/bin/bash также будет работать, если ваш bash находится в /usr /local /bin, но если вы переместитесь в другую систему, где она установлена в другом месте, вам нужно будет отредактировать этот файл. Программа env (которая всегда устанавливается в одном и том же месте) решает эту проблему.)
  3. Если это скрипт и есть шебанг, убедитесь, что он имеет правильное окончание строки. Это то, что часто идет не так, когда сценарий редактируется в Windows, и в нем используется окончание строки, отличное от unice. (^ J ^ M в Windows, ^ J в Unix и ^ M в Mac). В результате env может искать программу с именем bash^M , и это может быть неочевидно, когда полезно (как в редакторе полезных стилей в стиле «плавный стиль», он решает помочь вам, не показывая ^ M).
2

ic теперь называется nickle , как объяснено здесь. Вы можете получить его с nickle.org , но было бы лучше, если бы вы могли использовать менеджер пакетов вашего дистрибутива, так как я думаю, что у него есть некоторые зависимости. Например, в системе Ubuntu вы можете установить ее с

sudo apt-get install nickle

Затем вы можете либо изменить свой сценарий на использование nickle вместо ic , либо связать nickle с ic , например,

ln -s /usr/bin/nickle ~/bin/ic

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .