Nieuws:

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

Auteur Topic: Bash script probleempje  (gelezen 5515 keer)

Offline BaukeP

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

Offline Bloom

  • Lid
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
Re: Bash script probleempje
« Reactie #3 Gepost op: 2018/11/23, 20:35:13 »
Mijne heren,

Dat was 'm. Bedankt

Bauke

Offline BaukeP

  • Lid
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

Re: Bash script probleempje
« Reactie #5 Gepost op: 2018/11/27, 06:24:09 »
's/$($zoek)/$($vervang)/' -> "s/$zoek/$vervang/"?
mvg,  Peter
Desktop: xubuntu 18.04.6
"No windows in the house but somehow there's more light..."
The future ain’t what it used to be.

Offline BaukeP

  • Lid
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

Re: Bash script probleempje
« Reactie #7 Gepost op: 2019/05/23, 20:22:47 »
#Vanadium!
mvg,  Peter
Desktop: xubuntu 18.04.6
"No windows in the house but somehow there's more light..."
The future ain’t what it used to be.

Offline BaukeP

  • Lid
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