[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

OT: bashisms (Era: Canviar fons de pantalla al login)



Si se'm permet l'apunt torrecollonaire:

El 26/03/16 a les 13:55, Alfons ha escrit:
> [...]
>
> Deixo el resultat del primer script per si algú s'anima a investigar:
>
> debianita@debian:~$ #! /bin/sh
> debianita@debian:~$  
> debianita@debian:~$ #change workdir to suit your system
> debianita@debian:~$ workdir=/home
> debianita@debian:~$ gst=/usr/share/gnome-shell/gnome-shell-
> theme.gresource
> debianita@debian:~$ mkdir nou
> debianita@debian:~$ 
> debianita@debian:~$ for r in `gresource list $gst`; do gresource extract $gst $r >$workdir${r/#\/org\/gnome\/shell/}; done

Això últim no funcionarà amb /bin/sh (que actualment a debian és dash)
perquè la substitució per expressions regulars a variables és un extra
de bash. Em refereixo a aquesta part:

${r/#\/org\/gnome\/shell/}

No sé com funciona gresource (jo uso KDE, no GNOME), però entenc que la
sortida és una sèrie de línies que comencen amb #/org/gnome/shell, de
ser així la substitució de variable hauria de ser:

${r#\#/org/gnome/shell}

IMPORTANT: això només funciona si #/org/gnome/shell està a començament
de línia, si sorgís entremig seria més complicat:

${r%%#/org/gnome/shell*}${r#*#/org/gnome/shell}

En el teu cas, però, com que ho has enganxat directament a consola,
realment ho executes amb bash i el problema no t'ha passat. Però tingues
present que seguint les instruccions de crear el shell script i fer-lo
executable, et donarà problemes. O bé fas el canvi que he descrit, o bé
deixes així la primera línia de totes:

#!/bin/bash

...per forçar que sigui bash l'intèrpret que ho executi.

Pel que fa al problema concret del teu correu, sembla que hi ha coses
que no troba. Mira d'ajustar la variable workdir a un valor adequat (que
no sé quin hauria de ser).


Reply to: