Как выполнить встроенную команду оболочки с помощью find?

Я вынужден делать это в tcsh на CentOS из-за окружающей среды на работе. При выполнении find . -type f -executable -exec source '{}' \; find . -type f -executable -exec source '{}' \; единственным результатом является find: 'source': No such file or directory для каждого соответствующего файла. Не уверен, почему это не работает в tcsh, так как это довольно просто. Что я делаю не так? Любая помощь очень ценится.

2 Solutions collect form web for “Как выполнить встроенную команду оболочки с помощью find?”

source – встроенная оболочка. find выполняет команды. Он не может выполнить встроенную оболочку.

Если вы хотите выполнять внешние программы, просто укажите имя программы:

 find . -type f -executable -exec '{}' \; 

Если это все сценарии csh, в которых отсутствует сибанг ( #!/bin/env csh в качестве первой строки), добавьте строку shebang. Если вы действительно не можете добавить строку shebang, вызовите csh явно:

 find . -type f -executable -exec tcsh '{}' \; 

Если это все фрагменты скрипта csh, которые вы хотите выполнить внутри текущей оболочки, вы не можете сделать это таким образом. Вам нужно будет собрать имена с помощью find а затем исправить их.

 foreach fragment ("`find . -type f -executable -print`") source "$fragment" end 

Во-первых, в этом есть что-то подозрительное. Осколки оболочки, предназначенные для источников, не должны быть исполняемыми.

Видеть это:

 127:2:1389633116:user@host:~$ tcsh source foo source: No such file or directory. 1:3:1389633119:user@host:~$ tcsh host:~> source foo foo: No such file or directory. host:~> exit 0:4:1389633582:user@host:~$ tcsh -c 'source foo' foo: No such file or directory. 

Попробуйте сами и другие. Возможно, проверять следы strace . Наконец, попытайтесь воспользоваться и построить обходной путь.

  • Почему «kill -l» дает разные результаты в рыбе и bash
  • Когда автозаполнение в tcsh, могу ли я ссылаться на предыдущий аргумент?
  • Что особенного в printf над эхом
  • ls после cd в tcsh?
  • Совместимость скриптов: Сохранить $? для использования позже
  • как заставить команду tcsh promt показать количество заданий LSF?
  • Какую оболочку я запускаю?
  • Что вызывает скрипт csh иногда не source /etc/csh.cshrc?
  • Как проверить, нет ли строки в tcsh
  • Предотвращение scp и менее команд, читающих интерактивный скрипт tcsh
  • Почему мой $ PATH не наследуется вызванным bash?
  • Все подпроцессы - Bash (!),
  • Interesting Posts

    Установить каталог на корневой каталог

    Nginx 502 Bad Gateway

    Ярлык клавиатуры для переключения фокуса без увеличения окна

    Почему я не могу аутентифицировать запрос на завивание, когда трубопровод меньше или больше?

    Что такое настройка «mintsystem» и когда я хочу ее активировать?

    Почему «xrandr» говорит, что у меня есть 3 порта HDMI и 3 DP, в то время как у меня есть только один HDMI и один DP?

    идентификация даты awk из входного файла

    Перезапускает ли Диспетчер дисплея (например, lightdm) перезапуск X-сервера?

    Редактирование / удаление уведомления системы CLI

    Силуэт из изображения

    Есть ли «обратное судо»?

    Перенаправить определенный адрес электронной почты, отправленный пользователю, другим адресатам электронной почты

    Как получить статус сети (онлайн / офлайн) и присвоить ее переменной в сценарии оболочки?

    Печать отступов с пробелом только в команде дерева

    Пятое поле запроса fstab

    Linux и Unix - лучшая ОС в мире.