Нажатие вкладки после файла сценария sourcing печатает результат, связанный с скриптом

У меня есть файл сценария в каталоге. Его содержимое выглядит следующим образом:

#!/bin/bash function set { cur=`pwd` alias m="cd $cur/app/models" alias v="cd $cur/app/views" alias t="cd $cur/app/views/templates" alias c="cd $cur/app/controllers" alias cl="cd $cur/app/classes" alias con="cd $cur/config" alias p="cd $cur/public" } function unset { unalias mvtc cl con p } if [ $1 = 's' ]; then set elif [ $1 = 'u' ]; then unset fi 

Когда я еще не получил этот файл, проблем нет. Однако, как только я отправлю этот файл с помощью команды . script.sh . script.sh , всякий раз, когда я . script.sh команду, например cd или vim а затем набираю что-то и tab кнопку tab , это то, что я получаю:

 cd abash: unalias: m: not found bash: unalias: v: not found bash: unalias: t: not found bash: unalias: c: not found bash: unalias: cl: not found bash: unalias: con: not found bash: unalias: p: not found bash: _upvars: -v: missing argument(s) bash: unalias: m: not found bash: unalias: v: not found bash: unalias: t: not found bash: unalias: c: not found bash: unalias: cl: not found bash: unalias: con: not found bash: unalias: p: not found bash: _upvars: -v: missing argument(s) 

Любая идея, что происходит и как ее остановить?

One Solution collect form web for “Нажатие вкладки после файла сценария sourcing печатает результат, связанный с скриптом”

Вы определяете функции, называемые set и unset . Это действительно плохая идея, потому что ваш модуль дополнения, кажется, вызывает set или unset (которые являются частью POSIX), ожидая использования встроенных оболочек оболочки, но в конечном итоге вы получаете свою функцию.

Назовите свои функции чем-то другим, кроме set и не set (если вы действительно должны назвать их, добавив символ подчеркивания).

В стороне, нет причин создавать функции как function foo { ... } . Просто используйте foo() { ... } вместо этого – это часть POSIX, тогда как форма, которую вы используете, – нет.

  • Выдать команду в каждом каталоге
  • команда `read` не работает в Makefile
  • Команда cat не работает внутри сценария оболочки
  • Динамически читать имя функции bash изнутри функции bash
  • Как печатать имя переменной вместо сценария оболочки значения?
  • Разделить файл на основе шаблона с ведущими нулями
  • Сценарий оболочки для объединения файлов с одинаковыми именами
  • Скрипт инициализации запускается дважды в SSH
  • Пути трубопроводов с различными типами котировок для замены косой черты
  • Разница между find ~ и find *
  • Терминология для команды в Command $ (...)
  • Linux и Unix - лучшая ОС в мире.