redirect - Que hacer>! y>> hacer en tcsh
(2)
En redirección de bash normal > redireccionando salida estándar a un archivo, sobrescribiendo cuando existe y >> redireccionando salida estándar a un archivo, añadiéndola cuando existe.
En un script tcsh (c shell) encontré los operadores >! >>! siendo utilizado. ¿Qué hacen estos operadores? tcsh también tiene los operadores > y >> , ¿cuál es la diferencia?
El signo de admiración suprime el cheque para el tipo de archivo que se escribe en ciertos casos.
Para citar la página man de tcsh:
Si se configura la variable de shell noclobber, entonces el archivo no debe existir o ser un archivo especial de caracteres (por ejemplo, un terminal o ''/ dev / null'') o se produce un error. Esto ayuda a prevenir la destrucción accidental de archivos. En este caso, el ''!'' formularios pueden ser utilizados para suprimir esta verificación.
En tcsh redirección el! symbol significa sobrescribir el archivo existente incluso si noclobber se configuró noclobber .
En otras palabras, si no se establece noclobber, entonces:
-
cmd > fileescribirástdouten el archivo si el archivo no existe -
cmd > filefallará si el archivo existe -
cmd >> fileanexarástdoutal archivo si el archivo existe -
cmd >> filefallará si el archivo no existe -
cmd >! filecmd >! fileescribirástdouten el archivo , sobrescribiendo cualquier archivo existente -
cmd >>! filecmd >>! fileagregarástdoutal archivo , creando el archivo si no existe
Si no se establece noclobber entonces el! no tiene efecto:
-
cmd > fileescribirástdouten el archivo , sobrescribiendo cualquier archivo existente -
cmd >> fileanexarástdoutal archivo -
cmd >! filecmd >! fileescribirástdouten el archivo , sobrescribiendo cualquier archivo existente -
cmd >>! filecmd >>! fileagregarástdoutal archivo