Sustitución de comando
Otra opción es usar la sustitución de comandos . Al ajustar un comando, $()
se ejecutará el comando y se reemplazará con su salida.
cat $(find ./inhere -size 1033c 2> /dev/null)
se convertirá
cat ./inhere/file1 .inhere/file3
Esto es más o menos equivalente a usar el estilo anterior de comandos de ajuste con ticks de retroceso:
cat `find ./inhere -size 1033c 2> /dev/null`
Más detalles de los documentos vinculados anteriormente
Bash realiza la expansión ejecutando el comando en un entorno de subshell y reemplazando la sustitución del comando con la salida estándar del comando, con cualquier nueva línea final eliminada. Las líneas nuevas incrustadas no se eliminan, pero pueden eliminarse durante la división de palabras. La sustitución del comando $(cat file)
se puede reemplazar por el equivalente pero más rápido $(< file)
.
Cuando se utiliza la forma backquote viejo estilo de sustitución, la barra invertida conserva su significado literal excepto cuando es seguida por $
, `
o \
. La primera comilla inversa no precedida por una barra diagonal inversa finaliza la sustitución del comando. Cuando se usa el $(command)
formulario, todos los caracteres entre paréntesis forman el comando; ninguno es tratado especialmente.
Las sustituciones de comandos pueden estar anidadas. Para anidar al usar el formulario con comillas invertidas, escape de las comillas internas con barras diagonales inversas.
Si la sustitución aparece entre comillas dobles, la división de palabras y la expansión de nombre de archivo no se realizan en los resultados.
Vea esta otra respuesta para algunos buenos ejemplos de uso.