texto - scripts bash ejemplos
"~/Desktop/test.txt: ningĂșn archivo o directorio" (2)
He escrito este guion:
#!/bin/bash
file="~/Desktop/test.txt"
echo "TESTING" > $file
El script no funciona; me da este error:
./tester.sh: line 4: ~/Desktop/test.txt: No such file or directory
¿Qué estoy haciendo mal?
FYI, también puedes usar eval
:
eval "echo "TESTING" > $file"
El eval
toma el comando como argumento y hace que el shell haga la expansión de Tilde .
Intenta reemplazar ~
con $HOME
. La expansión de Tilde solo ocurre cuando la tilde no está citada. Ver info "(bash) Tilde Expansion"
.
También podría hacer file=~/Desktop
sin citarlo, pero si alguna vez reemplaza parte de esto con algo con un separador de campo, entonces se romperá. Citar los valores de las variables es probablemente una buena cosa para acostumbrarse de todos modos. Citar file=~/"Desktop"
variables file=~/"Desktop"
también funcionará, pero creo que es bastante feo.
Otra razón para preferir $HOME
, cuando sea posible: la expansión de tilde solo ocurre al comienzo de las palabras. Así que el command --option=~/foo
solo funcionará si el command
realiza la expansión tilde, que variará según el comando, mientras que el command --option="$HOME/foo"
siempre funcionará.