В целом, выражения $1
, $2
, и т.д. расширьтесь до 1-го, 2-го, и т.д. аргумент, данный на командной строке сценария.
Так, когда Вы вызываете сценарий как:
myscript.sh myfile
затем $1
в рамках сценария расширяется до myfile
(и $2
, $3
, и т.д. все - пустая строка).
Когда Вы вызываете сценарий как:
myscript < myfile
перенаправление STDIN от myfile
сделан родительской оболочкой, таким образом, сценарий на самом деле называют без аргументов и $1
расширяется до пустой строки.
Кажется на помещение пути на корректное место. Это не могло бы работать, если у Вас есть пробелы где-нибудь в пути как бы то ни было. Можно попытаться делать это для правильности:
export PATH="$PATH:/home/ahuq/MappingServer/md5_program"
С другой стороны, просто вставьте приложение /usr/local/bin
. Или даже установка md5sum
пакет, который, кажется, делает то же самое как Ваше приложение.
Не видя Ваш dotfiles, трудно сказать наверняка, но от того, что Вы заключили в кавычки, Вы не учли "экспорт", когда Вы добавили его к .profile и .bashrc файлам.
export
или необходимо вручную получить файлы из командной строки source ~/.bashrc
– Shawn J. Goff
01.05.2011, 04:29
От Вашего вопроса:
root@ahuq-kitchen:/home/ahuq# md5-sanis
Но, Вы говорите, что только отредактировали .bashrc для своего пользователя.
При необходимости в новом пути, чтобы быть глобальными для каждого пользователя, Вы могли бы отредактировать /etc/bash.bashrc
(это могло вызвать проблемы, если другие пользователи не могут выполниться md5
от Вашего homedir должного до проблем полномочий). Или, если Вам только нужно изменение, чтобы также применяться к корню, а также Вашему локальному пользователю, считайте отредактированными /root/.bashrc
также.
Кроме того, и более предпочтительный, как корень, Вы могли рассмотреть установку/копирование md5
команда к /usr/local/bin
, который является моим значением по умолчанию в общем $PATH
в Ubuntu.
Вы могли сделать это с:
$ sudo cp/home/ahuq/mappingserver/md5_program/md5/usr/local/bin
$ sudo chown root:root/usr/local/bin/md5
$ sudo chmod 755/usr/local/bin/md5
Вы уверены, что работаете bash
(и не некоторый другой аромат Оболочки Bourne такой как sh
)? Попробовать ps $$
и echo $SHELL
проверить это.
Кроме того, Вы могли поместить операторы такой как echo IN FILE XYZ
непосредственно прежде, чем добавить это к пути, чтобы видеть, выполняются ли Ваши настройки пути на самом деле.
И помещенный добавление Вашего пути максимально близко к концу Вашей оболочки запускают файл. Я видел файлы запуска в прошлом где в какой-то момент все PATH
сбрасывается и восстановите с нуля вместо того, чтобы добавить новые каталоги
У меня также возникли некоторые проблемы с добавлением исполняемых файлов в свой путь.
У меня сработало добавление строки export PATH = $ PATH: / home / ahuq / MappingServer / md5_program
в ~ / .bash_profile
.
К сожалению, я не знаю почему, но для met .bashrc не работал, а .bash_profile работал.