Назад | Перейти на главную страницу

Эхо команды по-прежнему работает в обычном режиме после удаления

я хочу удалить echo команда (которая находится в /bin/echo), но эхо команды по-прежнему работает в обычном режиме. Когда я использую which команда, это подтверждает, что echo был удален

/ usr / bin / which: нет эха в (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/ bin: / корень / bin)

Ты знаешь что происходит

Эхо - это трепать встроенная команда, которую вы видите.

Я предполагаю, что реальный вопрос: почему вы хотите это сделать? Есть очень много программ, которые полагаются на эхо, и все они сломаются, если вы отключите эту команду.

bash также встроен в вашу оболочку (например, bash, ksh и т. д.), поэтому даже если вы удалите исходный двоичный файл echo, он все равно будет работать из вашей оболочки (но у вас не будет аргументов и т.д., доступных как с двоичным файлом)

см. встроенные команды bash здесь: http://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html

попробуйте добавить это в пользовательский .bash_profile (или из оболочки):

enable -p echo

и попробуйте снова запустить эхо (ссылка: https://astoryworthtelling.wordpress.com/2011/03/20/disable-bash-builtin-commands/) и это не должно работать

На самом деле это отличная демонстрация того, почему использовать эхо в скриптах, которые вы хотите переносить, - плохая идея. Это часто отменяется встроенными командами оболочки.

Посмотри на

man bash

И найдите echo, чтобы найти, где определена встроенная версия.

В зависимости от ваших потребностей вы можете переопределить эхо с помощью псевдонима

alias echo=':'