Si je lance cat <(echo 'hello')
dans le [nom d'hôte root @] #, il montre correctementchat <(echo « bonjour ») peut fonctionner, mais ne peut pas fonctionner en mode script shell
Mais si je tourne de ce qui précède ci-dessous le script test.sh:
#!/bin/sh
cat <(echo 'hello')
et exécutez sh -x test.sh, il me rappellerait des erreurs ci-dessous:
./test.sh: line 3: syntax error near unexpected token `('
./test.sh: line 3: `cat <(echo 'hello')'
raison demander c'est parce que je suis ce thread (la réponse verte un), le bal pt la même erreur.
La bourne shell Posix 'sh' ne prend pas en charge la substitution de processus (' <() '), vous devez utiliser shell Boune de nouveau' bash' pour le soutenir. – Inian
Certainement si vous avez 'bash' installé (vérifiez en faisant' quel bas' ou 'echo $ SHELL'). Changez la première ligne à '#!/Bin/bash' et essayez d'exécuter le même script que' bash -x test.sh' – Inian
si vous avez vraiment besoin d'utiliser #!/Bin/sh' alors vous devrez étendre votre Q à un cas d'utilisation réel, comme 'cat <(echo hello)' n'a pas beaucoup de sens. pourquoi ne pas juste 'echo hello' ou supposer que vous pensez à un processus en alimentant un autre, utilisez un pipeline, c'est-à-dire' echo $ RANDOM \ * 5 | bc'? Bonne chance. – shellter