GNU/Linux >> Znalost Linux >  >> Linux

Přesměrování výstupu subshell do procesu?

Snažím se spustit skript v SSH a předat tomuto skriptu nějaké parametry. Zkoušel jsem následující, které nefungovalo – hodnota není předána:

$ LC_FOO=x ssh -o SendEnv=LC_FOO $HOST < myLongScript.sh

Cíloví hostitelé jsou někdy velmi přísní a pravidelně se vytvářejí, takže změna nastavení SSH na nich je marná.

Snažím se tedy uchýlit k triku a předat hodnotu do samotného skriptu. Jinými slovy, chci přidat proměnné do skriptu.

Vyzkoušel jsem také tyto další přístupy:

# doesn't work - 'ambiguous redirect'
$ ssh ... < $(...)

# doesn't work - 'LC_FOO=x: command not found'
$ $(echo "FOO=x"; cat myLongScript.sh) | ssh ...

Jak mohu předřadit řádek na ssh „vstup?

Přijatá odpověď:

Chcete náhradu procesu, jako je ssh ... < <(...) . ssh ... < $(my_command) je náhrada příkazu vytvoří přesměrování s každým slovem z výsledku my_command jako cíl přesměrování.


Linux
  1. Ssh – Ponechat procesy spuštěné po odpojení relace Ssh?

  2. Ssh – Omezení uživatele Ssh/scp/sftp na adresář?

  3. Jak změnit přesměrování výstupu běžícího procesu?

  1. Zpracovat každý řádek výstupu z `ping` okamžitě v potrubí?

  2. Co znamená ve výstupu Ps?

  3. Proč možnost Ssh -t přidává Cr &Lf do přesměrovaného výstupu?

  1. Jak přesměrovat výstup již běžícího procesu

  2. Spusťte proces s výstupem v reálném čase v PHP

  3. Přesměrování výstupu příkazu do proměnné v bash se nezdaří