Хотя я не согласен с аргументом в пользу того, что это «бесполезное использование кошки», там может Причины для этого:
Во многих языках (включая английский) слова и предложения читаются слева направо, поэтому отображение потока данных таким же образом может показаться читателю более естественным.
Причиной появления второго кота
могло быть маскирование кода возврата. Например:
$ wc < /etc/passw
sh: /etc/passw: Cannot find or open the file.
$ echo $?
1
В то время как с cat
:
$ wc < /etc/passw | cat
sh: /etc/passw: Cannot find or open the file.
$ echo $?
0
Это может быть задействовано, если в оболочке установлено set -e
. В первом примере это прервало бы оболочку после wc
, тогда как во втором примере она продолжилась бы. Очевидно, есть и другие способы справиться с этим.
Кроме того, разница в производительности двух операторов (то есть с cat или без) незначительна (особенно на современных машинах), и, если это было важно, оболочка - это неправильный язык для использования.
Debería escapar de las comillas y separar los dos comandos entre sí.
ssh -t computer.A 'ssh -t computer.B \\'shutdown -p now\\'; shutdown -p now'
Si quería el segundo apagado en la computadora. A solo para ejecutar si el primero fue exitoso, reemplace el ;
con &&
.
También puede alternar las comillas así:
ssh -t computer.A 'ssh -t computer.B "shutdown -p now"; shutdown -p now'
Imagine estar en la computadora A. Quiere apagar la computadora B. ¿Cómo hace esto?
Escribes,
ssh -t computer.B 'shutdown -p now'
Ahora desea ejecutar ese comando ("ssh -t computer.B..." )en su computadora . Debe citarlo, pero en el comando ya hay dos comillas, por lo que debe escapar de ellas:
ssh -t computer.A 'ssh -t computer.B \'shutdown -p now\''
y en realidad desea ejecutar dos comandos, por lo que debe agregarlo dentro de las comillas externas:
ssh -t computer.A 'ssh -t computer.B \'shutdown -p now\'; shutdown -p now'
Si desea iterar esto conectándose a su computadora desde el exterior, simplemente enjuague y repita:
primera etapa, escape todas las comillas y todas las barras , por lo que \
se convierte en \\
y '
se convierte en \'
. Lo que significa que \'
se convierte en\\\'
:
ssh -t computer.A \'ssh -t computer.B \\\'shutdown -p now\\\'; shutdown -p now\'
segunda etapa :encerrar entre comillas, agregar el comando de apagado y anteponer la instrucción ssh:
ssh -t mycomputer 'ssh -t computer.A \'ssh -t computer.B \\\'shutdown -p now\\\'; shutdown -p now\'; shutdown -p now'