Nieuws:

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

Auteur Topic: OPGELOST Bash probleempje  (gelezen 1042 keer)

Offline BaukeP

  • Lid
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
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
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
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
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
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
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
Re: Bash probleempje
« Reactie #7 Gepost op: 2012/03/09, 01:21:51 »
Oké bedankt!

Bauke