Saltar al contenido

escriba un archivo, agregue si existe; de ​​lo contrario, cree en bash

Nuestros desarrolladores estrellas han agotado sus provisiones de café, buscando diariamente por la respuesta, hasta que Sofía halló el resultado en Gitea así que en este momento la compartimos aquí.

Solución:

Utilizar el touch dominio:

touch $fileLog
echo "$Logstring" >> $fileLog

   #! /bin/bash
   VAR="something to put in a file"
   OUT=$1
   if [ ! -f "$OUT" ]; then
       mkdir -p "`dirname "$OUT"`" 2>/dev/null
   fi
   echo $VAR >> $OUT

   # the important step here is to make sure that the folder for the file exists
   # and create it if it does not. It will remain silent if the folder exists.

$ sh out hello/how/are/you/file.out
geee: ~/src/bash/moo
$ sh out hello/how/are/you/file.out
geee: ~/src/bash/moo
$ sh out another/file/lol.hmz
geee: ~/src/bash/moo
$ find . 
.
./out
./another
./another/file
./another/file/lol.hmz
./hello
./hello/how
./hello/how/are
./hello/how/are/you
./hello/how/are/you/file.out
geee: ~/src/bash/moo
$ cat ./hello/how/are/you/file.out
something to put in a file
something to put in a file
geee: ~/src/bash/moo
$ cat ./another/file/lol.hmz 
something to put in a file

se necesita el escape " para dirname si la carpeta del archivo tiene espacios en el nombre.

Si sostienes algún contratiempo y disposición de medrar nuestro enunciado puedes añadir una anotación y con gusto lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.