я хочу удалить 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=':'