Bash-script: Plocka ut vilken disk som är monterad i en viss katalog

Permalänk

Bash-script: Plocka ut vilken disk som är monterad i en viss katalog

Hej!

Jag håller på med ett litet bash-script som ska plocka ut vilken disk som är monterad i en viss katalog.

Exempel:

df -h /mnt/temp Filesystem Size Used Avail Use% Mounted on /dev/sdc5 942M 578M 317M 65% /mnt/temp

I exemplet ovan ska man alltså ange /mnt/temp som parameter och få tillbaka /dev/sdc5 som svar.

Jag har gjort följande i device.sh:

#!/bin/bash mountpoint=$1 # Example /mnt/temp output=`mount | grep $mountpoint" "` echo $output

När man kör detta med kommandot ./device.sh /mnt/temp får man följande output:

/dev/sdc5 on /mnt/temp type ext4 (rw)

Det jag vill ha hjälp med är alltså att klippa $output vid " on " och stoppa in "/dev/sdc5" i en ny variabel $device.

Är väldigt tacksam för svar, även tips på smidigare lösningar!

Permalänk
Medlem

På inget sätt den enda eller ultimata lösningen, men följande funkar nog på det mesta i *nix-väg.

#!/bin/bash df $1 | grep ^/ | cut -d' ' -f1

Permalänk
Skrivet av NakedApe:

På inget sätt den enda eller ultimata lösningen, men följande funkar nog på det mesta i *nix-väg.

#!/bin/bash df $1 | grep ^/ | cut -d' ' -f1

Tusen tack, det funkade kanon!

Permalänk
Medlem

En bättre lösning imo då NakedApe:s lösning inte fungerar särskilt lysande i freebsd med zfs är å köra

#!/bin/bash df $1 | awk '{print $1}' | grep $mountpoint

Permalänk
Medlem

Är det inte bättre att läsa /etc/mtab eller /proc/$pid/mounts (för *nix med namespaces) än att parsa från df?