He estado buscando en Google desde hace un tiempo y no encuentro nada que coincida con lo que necesito/quiero hacer.Modificar un paso de parámetro en un script (Bash)
Mi objetivo es escribir una secuencia de comandos que tiene dos argumentos. Buscará a través del primer argumento (que es una lista) y detectará si el segundo argumento ya está en él. Por ejemplo:
list =/bin/foo:/bin/al azar: al azar
a añadir a la lista:/bin/foobar
llamar al script producirá el resultado de/bin/foo:/bin/random: random:/bin/foobar.
Si la parte para agregar a la lista ya está en la lista, entonces no se cambiará nada del original.
Tengo todo funcionando hasta el punto en que quiero modificar el parámetro que pasé.
...
if [ $RUN = 1 ]; then
echo $1
else
$1="$NEWLIST"
fi
exit 0
Esto sin embargo produjo un error. Dice que el comando no se encuentra y me da el número de línea en el que $ 1 = "$ NEWLIST" está activado. ¿Qué estoy haciendo mal aquí? ¿Cómo modifico $ 1? ¡Gracias!
edición:
$ PATH=/opt/bin:$PATH
$ ./scrip.sh PATH /user/opt/bin
$ /opt/bin:/user/opt/bin
Esto es lo que yo quiero, como resultado de la secuencia de comandos.
Hrmm tal vez dejé algo fuera. Lo que quiero que suceda después de que se llame el guión es que cada vez que hago eco de la lista quiero que también muestre la modificación que hizo el guión. ¿Eso tiene sentido? Entonces si tuviera list = "1: 2: 3: 4" ./script list 5 el programa hará eco del resultado. Luego cada vez que llamo a lista de eco 1: 2: 3: 4: 5 resultará. – yaegerbomb
tienes que agregar '-q' a' grep' –
@Op De Cirkel. No creo que al dispositivo nulo le importe mucho. ¿O me estoy perdiendo algo? – Hyperboreus