bash
no parece quejarse si ejecuta un comando como
$ < some-file-that-exists
Nada parece suceder.
También podrías usar
$ <<<"any string"
e incluso la sustitución de procesos.
Entonces, ¿qué hace exactamente esto y por qué está permitido? ¿Podría ser útil para algo?
<
le dará un error (zsh: parse error near `\n'
) ya que no se da ningún argumento.bash
, pero eso es interesanteless
.Respuestas:
<
configura la redirección para un comando que puede ocurrir antes o después de las instrucciones de redirección. Es decirfunciona tan bien como
Pero si no das un comando, bash configura la redirección y no hace nada más. Para la redirección de entrada, esto equivale a lo que vio, nada, si el archivo existe y es legible. Si el archivo no existe o no es legible, bash indicará un error. Para la redirección de salida, el archivo de salida se creará si no existe. Cualquier archivo de salida existente se truncará si
>
se usa; sin truncamiento si>>
se usa.fuente
< file wc
vs.wc < file
?<lee de stdin por defecto, o un archivo. su expresión no hace nada con la entrada porque no hizo nada después de leer.
si al final termina el archivo de salida <some-file-that-exist>, verá que acaba de leer el contenido del primer archivo y lo escribió en el segundo archivo.
<<< está aquí en formato doc, por lo que se lee desde una cadena en lugar de un archivo. gato <<< "cualquier cadena" para ver lo que has leído.
fuente