Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Bash script probleempje  (gelezen 2738 keer)

Offline BaukeP

  • Lid
  • Steunpunt: Nee
Bash script probleempje
« Gepost op: 2018/11/23, 16:29:35 »
Hallo forumleden,
Ik probeer het volgende werkend te krijgen: (een functie in .bashrc)

renfunc() {
ext=${1:-"*.[mMkKvV]"}
zoek=${2:-"e\."}
vervang=${3:-"0"}
for f in $ext; do rename 's/$($zoek)/$($vervang)/' * ; done
}

Het is de bedoeling dat het eerste argument de extensie is en indien niet gegeven dan moet worden gezocht naar .mkv. De zoek-string is het tweede argument etc.
Het is of alle drie meegeven of niets .... kan misschien ook nog anders.. TIPS?

Maar ik krijg de volgende fouten:
Global symbol "$zoek" requires explicit package name (did you forget to declare "my $zoek"?) at (user-supplied code).
Global symbol "$vervang" requires explicit package name (did you forget to declare "my $vervang"?) at (user-supplied code).

De laatste regel klopt dus iets niet. Maar wat?

Alvast bedankt voor de hulp

Bauke
« Laatst bewerkt op: 2018/11/24, 15:46:33 door BaukeP »

Offline vanadium

  • Lid
  • Steunpunt: Nee
Re: Bash script probleempje
« Reactie #1 Gepost op: 2018/11/23, 16:42:11 »
's/$($zoek)/$($vervang)/' -> "s/$zoek/$vervang/"?

Offline Bloom

  • Lid
  • Steunpunt: Ja
Re: Bash script probleempje
« Reactie #2 Gepost op: 2018/11/23, 17:18:17 »
Voor de duidelijkheid: als je Bash variabelen binnen een tekst geïnterpreteerd wil zien, moet je dubbele aanhalingstekens gebruiken. Gebruik je enkele aanhalingen, dan wordt alles letterlijk overgenomen en wordt er niets geïnterpreteerd.

Offline BaukeP

  • Lid
  • Steunpunt: Nee
Re: Bash script probleempje
« Reactie #3 Gepost op: 2018/11/23, 20:35:13 »
Mijne heren,

Dat was 'm. Bedankt

Bauke

Offline BaukeP

  • Lid
  • Steunpunt: Nee
Re: Bash script probleempje
« Reactie #4 Gepost op: 2018/11/24, 15:45:32 »
Hallo forumleden,
Ik probeer het volgende werkend te krijgen: (een functie in .bashrc)

renfunc() {
ext=${1:-"*.[mMkKvV]"}
zoek=${2:-"e\."}
vervang=${3:-"0"}
for f in $ext; do rename 's/$($zoek)/$($vervang)/' * ; done
}

Het is de bedoeling dat het eerste argument de extensie is en indien niet gegeven dan moet worden gezocht naar .mkv. De zoek-string is het tweede argument etc.
Het is of alle drie meegeven of niets .... kan misschien ook nog anders.. TIPS?

Maar ik krijg de volgende fouten:
Global symbol "$zoek" requires explicit package name (did you forget to declare "my $zoek"?) at (user-supplied code).
Global symbol "$vervang" requires explicit package name (did you forget to declare "my $vervang"?) at (user-supplied code).

De laatste regel klopt dus iets niet. Maar wat?

Alvast bedankt voor de hulp

Bauke

Offline pederoco

  • Lid
  • Steunpunt: Nee
Re: Bash script probleempje
« Reactie #5 Gepost op: 2018/11/27, 06:24:09 »
's/$($zoek)/$($vervang)/' -> "s/$zoek/$vervang/"?
mvg,  Peter
Desktop: Linux Mint Cinnamon 19.3
Laptop: xubuntu 18.04.3
"No windows in the house but somehow there's more light..."

Offline BaukeP

  • Lid
  • Steunpunt: Nee
Re: Bash script probleempje
« Reactie #6 Gepost op: 2019/05/23, 11:38:31 »
Sorry voor de late reactie Peter, maar de oplossing werkt!

Bedankt

Bauke

Offline pederoco

  • Lid
  • Steunpunt: Nee
Re: Bash script probleempje
« Reactie #7 Gepost op: 2019/05/23, 20:22:47 »
#Vanadium!
mvg,  Peter
Desktop: Linux Mint Cinnamon 19.3
Laptop: xubuntu 18.04.3
"No windows in the house but somehow there's more light..."

Offline BaukeP

  • Lid
  • Steunpunt: Nee
Re: Bash script probleempje
« Reactie #8 Gepost op: 2019/05/24, 09:30:16 »
Inderdaad, de tip kwam van Vanadium.
Maar iedereen bedankt voor de reacties.

Vr. gr.
Bauke