Что означает «//» взамен от `which`
У меня есть test
скриптовый test
в полном пути /home/sawa/foo/bar/test
. Каталог /home/sawa/foo/bar
находится в пределах $PATH
и имеет приоритет над стандартными, включая /usr/bin
. Когда я делаю
`which test`
чтобы убедиться, что эта команда правильно распознана, она возвращает
- Параметры команды загрузки из файла верхнего уровня
- Как я могу интерполировать текстовый файл трехмерных координат (X, Y, Z) на регулярную сетку?
- shell script - вычесть 1 из шестнадцатеричного MAC-адреса и добавить двоеточие к нему
- Добавить временные метки для вывода команды «top»
- Могу ли я получить доступ к массиву, созданному в одном скрипте awk в последующем скрипте awk?
/home/sawa/foo/bar//test
с двойной косой чертой //
. Я знаю, что есть встроенная команда с тем же самым test
имени, и когда я удаляю мой, этот под /usr/bin/test
возвращается, поэтому я думаю, что он каким-то образом вмешивается.
- Что здесь означает эта двойная косая черта и почему она появляется здесь?
- Мой исполняемый
test
не работает корректно. Почему это?
- Написание сценария установки для CentOS
- Заменить между шаблонами, которые начинаются и заканчиваются в разных строках
- Заменить колонку с результатом команды
- Как запустить java-службу как пользователя без полномочий root на CentOs 6
- Как создать имя файла для конвейера для удаления всех файлов?
- Как я могу использовать grep для разбитых HTML-тегов?
- Как узнать все файлы на других машинах, используя сценарий оболочки bash?
- Что означает «FILENAME = $ (echo $ INFILE | grep -oE» + $ ")" означает?
2 Solutions collect form web for “Что означает «//» взамен от `which`”
Я бы предположил, что у вас есть /home/sawa/foo/bar/
на вашем пути, т. Е. Путь с завершающей косой чертой.
which
выполняет итерацию по каждому элементу $PATH
и добавлению /argv[1]
и проверяет наличие этого файла. Это вызывает двойной слэш – один из части $PATH
и один из /argv[1]
.
Двойной слэш не проблема . Он свернут на единую косую черту. Только в начале пути двойная слэш имеет особое значение, а не всегда.
Поскольку test
не работает, убедитесь, что вы не используете встроенную оболочку при вызове test
. Обычно вы делаете это, используя полный путь, но с помощью bash вы также можете использовать enable -n test
для отключения встроенной команды test
.
Скорее всего, это не сработает для вас, потому что встроенная оболочка запускается с приоритетом над любым исполняемым файлом. Вы не должны сознательно создавать конфликт имен таким образом, поведение будет непоследовательным в разных средах. Системный двоичный test
существует только для использования оболочек, у которых нет встроенной версии.
Если вы хотите использовать альтернативные функции, вы должны назвать свой скрипт чем-то другим.
- Можно ли изменить Caps Lock на Hyper / Дополнительный модификатор?
- Как преобразовать двузначные текстовые данные в двоичное (представление бит)