2017-10-03 9 views

Répondre

2

La commande équivalente serait:

$ ssh [email protected] fish -- < ./example.fish --arg1 arg2 

Pour le démontrer localement (sans ssh, et en supposant que le système a la /dev/stdin dispositif):

$ echo 'set -S argv' | fish -- /dev/stdin --abc def 
$argv: not set in local scope 
$argv: set in global scope, unexported, with 2 elements 
$argv[1]: length=5 value=|--abc| 
$argv[2]: length=3 value=|def| 
$argv: not set in universal scope 

utiliser variante /dev/fd/0.

+0

Tout comme votre exemple: 'ssh utilisateur @ host poisson/dev/stdin - --arg1 arg2 <./ example.fish'. Mon exemple était juste une simplification pour montrer comment la solution fonctionne et remplit correctement '$ argv' et exécute le script lu depuis stdin. Sans la complication de ssh et tout problème que son utilisation introduit (par exemple, des échecs d'authentification). –