¿Qué significa o significa doble paréntesis de Ángulo? [duplicar]

21

Parece una pregunta tan simple, pero no puedo encontrar ningún recurso con respecto a ella

En C / C ++, significa almacenar la lectura en un valor desde el símbolo del sistema y almacenarla dentro de una variable,

¿Qué hay de la programación de Shell?

    
pregunta Computernerd 08.01.2014 - 01:52

5 respuestas

44

>> se puede usar para canalizar la salida en un archivo de texto y se agregará a cualquier texto existente en ese archivo.

'cualquier comando' >> textfile.txt

agrega la salida de 'cualquier comando' al archivo de texto.

se sobrescribirá el uso de > .

    
respondido por el Antonios Hadjigeorgalis 08.01.2014 - 02:05
11

El símbolo del paréntesis de ángulo recto (& gt;) se usa para redirigir la salida a un archivo de disco. Si el archivo especificado no existe ya, se crea; si existe, se sobrescribe. El símbolo del paréntesis angular izquierdo (& lt;) se usa para redirigir la entrada desde un archivo de disco. Para agregar salida a un archivo existente, use doble corchetes angulares rectos (& gt; & gt;)

    
respondido por el Brask 08.01.2014 - 02:05
7

El > y >> son operadores de redirección para FD (Descriptores de archivo)

En bash tiene FD estándar de árbol que son la entrada estándar (strin), la salida estándar (strout) y el error estándar (strerr). Estos también pueden llamarse mediante FD 0, FD 1 y FD 2, respectivamente.

Normalmente tendrías que tendrías todos los FD apuntando al terminal, pero esto se puede cambiar usando la redirección.

Por ejemplo, si llamas:

command > log.txt

Redirigirá la salida al archivo log.txt Esto es similar a llamar:

command 1> log.txt

Como esto solo redirige a Strout, aún podrá ver el error en la terminal. Para redireccionar Strerr a su archivo log.txt, deberá ejecutar:

command 2> log.txt

De nuevo, esto solo redirige a Strerr. Si desea redirigir tanto stdout como stderr, debe duplicar la salida de stderr a stdout utilizando el comando >& .

command 1> log.txt 2>&1

Para entender este comando, debe leerlo de derecha a izquierda, primero se realiza una copia de stderr a stdout, y luego se redirige a la extensión log.txt.

Cuando usa la redirección de esta manera, bash no verá si el archivo existe o no y simplemente creará uno independientemente de si eso implica borrar el existente. Si desea evitar perder lo que ya se ha escrito en su archivo de registro, puede usar el comando >> de la misma manera explicada anteriormente, pero en este caso todos los resultados se agregarán a los archivos existentes.

Para su uso en C ++ con cin, cout y cerr, creo que hash dio una respuesta mejor que la que pude.

No soy un experto en esto, así que podría haberlo hecho mal. Para obtener una información más completa, recomiendo leer Guía Bash en la Wiki de Greg

    
respondido por el Presbitero 09.01.2014 - 01:27
6

En C / C ++:

En C / C ++ los operadores Izquierda y Derecha Shift usan los símbolos << y >> como el operador bit a bit; que realizan operaciones de cambio en bits. C ++ también hace uso de operadores de desplazamiento bit a bit sobrecargados en operaciones básicas de entrada / salida; >> y << corchetes en C ++ se usan para extracción y inserción de datos / información a transmisiones que pueden ser entradas / salidas estándar , archivos.

En scripting / programación de Shell:

En Shell Scripting / Programming, no muy diferente de las operaciones de extracción / inserción mencionadas anteriormente, el >> / << (variantes de > / < operadores) se utilizan para redirigir secuencias estándar desde / a las definidas por los usuarios y realizar operaciones adicionales (diferentes de > / < que sobrescribe) .

Referencias:

Quizás le interese leer:

respondido por el precise 08.01.2014 - 08:36
0

En el script de shell, el operador > creará un archivo que le asignará exactamente y borrará todo el contenido del archivo si existe. pero el >> agregará el texto al archivo que corresponda preferible >> se usará para escribir el archivo de registro. como Quiere agregar tiempo, contar o algunos registros de proceso y > para crear un archivo nuevo, pruebe esto:

  #!/bin/bash
  nowt=$(date +"%T")
  date1=$(date +"%s")
  NOW=$(date +"%d-%m-%Y")
  now=$NOW" "$nowt
  file_name=$NOW"_"$nowt".log"
  echo "START TIME WAS :$now " | cat > /home/user/Desktop/$file_name
  sh some_sh_file you want to run  2>&1 | tee >> /home/user/Desktop/$file_name #want to log the out put
  nowt=$(date +"%T")
  date2=$(date +"%s")
  NOW=$(date +"%d-%m-%Y")
  now=$NOW" "$NOW
  diff=$(($date2-$date1))
  echo "$(($diff / 60)) minutes and $(($diff % 60)) seconds elapsed."
  echo "END TIME WAS :$now" | cat >> /home/user/Desktop/$file_name
  echo "$(($diff / 60)) minutes and $(($diff % 60)) seconds elapsed." | cat >> /home/user/Desktop/$file_name  
    
respondido por el smn_onrocks 16.01.2014 - 11:48

Lea otras preguntas en las etiquetas