Presta atención porque en este escrito vas a hallar la solución que buscas.
Solución:
La sustitución correcta es
home_mf="$home//\//"
Esto se desglosa de la siguiente manera:
//
reemplazar cada\
barra invertida/
con/
barra oblicua
Demostración:
$ t='abc'; echo "$t//\//"
/a/b/c
Una alternativa que puede ser más fácil de leer sería citar el patrón y el reemplazo:
home_mf="$home//''/"/""
Esto lo hará:
home_mf=$home////\ # forward to backward slash
home_mf=$home//\// # backward to forward slash
p.ej:
$ cat slash.sh #!/bin/bash set -x home=/aa/bb/cc home_mf=$home////\ echo $home_mf home_mf=$home_mf//\// echo $home_mf $ ./slash.sh + home=aa/bb/cc + home_mf='aabbcc' + echo 'aabbcc' aabbcc + home_mf=/aa/bb/cc + echo /aa/bb/cc /aa/bb/cc
los $variable/..
la sintaxis es ksh
, bash
y posiblemente otros shells específicos, pero no estarán presentes en todos los shells basados en la sintaxis de shell de Bourne, por ejemplo dash
. Si desea una forma portátil (POSIX), puede usar sed
en cambio:
home_mf=$(printf "%s" "$home" | sed 's///\/g') # forward to backward slash
home_mf=$(printf "%s" "$home_mf" | sed 's/\///g') # backward to forward slash
Reseñas y valoraciones del tutorial
Recuerda que tienes la opción de agregar una reseña si diste con el arreglo.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)