source
é um shell embutido. find
executa comandos. Não é possível executar um shell embutido.
Se você deseja executar programas externos, basta especificar o nome do programa:
find . -type f -executable -exec '{}' \;
Se todos esses scripts csh não tiverem shebang como ( #!/bin/env csh
como a primeira linha) , adicione uma linha shebang. Se você realmente não pode adicionar uma linha shebang, chame o csh explicitamente:
find . -type f -executable -exec tcsh '{}' \;
Se esses são todos os fragmentos de script csh que você deseja executar dentro do shell atual, não é possível fazer isso dessa maneira. Você precisará coletar os nomes com find
e, em seguida, fornecê-los.
foreach fragment ("'find . -type f -executable -print'")
source "$fragment"
end
Há algo suspeito sobre esse requisito em primeiro lugar. Os fragmentos de shell destinados a serem originados não devem ser executáveis.