Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

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

Auteur Topic: OPGELOST Bash probleempje  (gelezen 808 keer)

Offline BaukeP

  • Lid
  • Steunpunt: Nee
OPGELOST Bash probleempje
« Gepost op: 2012/03/04, 11:07:28 »
Hallo,

Ik probeer een alias te maken van het volgende commando:
mount | mawk '$3 ~ /^\/$/ {print $1}'

In de Terminal werkt het probleemloos, maar hoe maak ik hier een alias van?

Ik heb: alias root="mount | mawk '$3 ~ /^\/$/ {print $1}'"

Maar dat werkt niet. Wat zie ik over het hoofd? Het ligt vast aan de quotjes, maar daar heb ik al wat mogelijkheden geprobeerd.

Alvast bedankt

Bauke
« Laatst bewerkt op: 2012/03/09, 01:22:12 door BaukeP »

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: Bash probleempje
« Reactie #1 Gepost op: 2012/03/04, 16:56:03 »
In plaats van een alias zou je er ook een functie van kunnen maken.
Zet dit in ~/.bashrc
function root
{
mount | mawk '$3 ~ /^\/$/ {print $1}'
}

Offline BaukeP

  • Lid
  • Steunpunt: Nee
Re: Bash probleempje
« Reactie #2 Gepost op: 2012/03/04, 17:24:22 »
Bedankt Johan,

ziet er inderdaad beter uit. Ga er dus een functie van maken.

maar zo:
alias root='mount | mawk '\''$3 ~ /^\/$/ {print $1}'\'''
werkt het ook!

Enkele quotes rond het geheel en daarbinnen voor iedere enkele quote: '\'' (escapen dus)

Nog 1 vraag: Hoe voer ik die functie uit in een python script?

Bauke

Offline BaukeP

  • Lid
  • Steunpunt: Nee
Re: Bash probleempje
« Reactie #3 Gepost op: 2012/03/04, 17:38:45 »
@Johan:

Ik heb er een functie van gemaakt. En daarna een alias (alias root='root()'). Werkt niet!

?? Hoe doe ik het wel?

Bauke

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: Bash probleempje
« Reactie #4 Gepost op: 2012/03/04, 17:49:52 »
Volgens mij kan je geen alias maken voor een functie.
Gewoon root uitvoeren zou moeten werken (in bash dan).

Voor Python kan je waarschijnlijk beter een stukje echte Python-code schrijven. Het wordt een rommeltje als je vanuit Python allerlei bash-aliassen gaat aanroepen.

Offline BaukeP

  • Lid
  • Steunpunt: Nee
Re: Bash probleempje
« Reactie #5 Gepost op: 2012/03/04, 17:55:33 »
Heb nog een hoop te leren.

Gewoon uitvoeren in bash??

In een bash script bedoel je?

Bauke

Offline Johan van Dijk

  • Administrator
    • johanvandijk
  • Steunpunt: Nee
Re: Bash probleempje
« Reactie #6 Gepost op: 2012/03/04, 17:58:27 »
Als je je .bashrc aangepast hebt moet je even opnieuw inloggen of opnieuw opstarten zodat die ingelezen wordt.
Hierna kan je gewoon dat commando in de terminal of bash script gebruiken.

Overigens zou ik het niet root noemen, aangezien dat ook al een loginnaam is en misschien ook wel gebruikt wordt in andere onderdelen van ubuntu. Maak er get_root van ofzo om gekke dingen te voorkomen.

Verder werkt die functie in dit geval hetzelfde als een alias.

Offline BaukeP

  • Lid
  • Steunpunt: Nee
Re: Bash probleempje
« Reactie #7 Gepost op: 2012/03/09, 01:21:51 »
Oké bedankt!

Bauke