Как выполниться, встроенное использование команды оболочки находят?

Это не echo поведение. Это - поведение удара. Когда Вы используете echo $x сформируйтесь удар заставляют следующую команду обрабатывать (обработка как пространство):

echo␣␣hello

Затем эта команда маркируется, и удар получают два маркера: echo и hello таким образом вывод справедлив hello

Когда Вы используете echo "$x" сформируйтесь затем, удар имеет следующее во входе токенизатора:

echo␣"␣hello"

таким образом это имеет два маркера echo и ␣hello, таким образом, вывод отличается.

5
14.01.2014, 01:13
2 ответа

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

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

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

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

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

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

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

Существует что-то подозрительное об этом требовании во-первых. Фрагменты Shell означали быть полученными, не должен быть исполняемый файл.

4
27.01.2020, 20:42
  • 1
    не понял, что о находке - должностное лицо и окружает builtins. Спасибо за понимание. –  roninkelt 15.01.2014, 17:00

Посмотрите это:

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 трассировки. Наконец попытайтесь воспользоваться преимуществом и создать обходное решение.

-2
27.01.2020, 20:42
  • 1
    я понятия не имею, где Вы достигаете с этим ответом. –  Gilles 'SO- stop being evil' 14.01.2014, 01:12
  • 2
    я говорю корреспонденту делать $ find . -type f -executable -exec tcsh -c 'source {}' \; –  41754 14.01.2014, 10:02
  • 3
    Ответ комментария выше точно, что я был после, объединен с пониманием об оболочке builtins, и должностное лицо из первого ответа полностью отвечает на мой вопрос. Большое спасибо. –  roninkelt 15.01.2014, 16:59

Теги

Похожие вопросы