Created
September 9, 2015 14:39
-
-
Save nunogt/68a3e5ea67b4a0aa08d6 to your computer and use it in GitHub Desktop.
Revisions
-
nunogt created this gist
Sep 9, 2015 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,40 @@ #!/bin/bash # note: inspired by Peter # # *UPDATE 1* now we're no longer parsing ls output # *UPDATE 2* now we're using an array instead of the <<< operator, which on its # part insists on a writable /tmp directory: # restricted environments with read-only access often won't allow you that # save original IFS OLDIFS="$IFS" for i in /sys/block/sd*; do readlink $i | sed 's^\.\./devices^/sys/devices^ ; s^/host[0-9]\{1,2\}/target^ ^ ; s^/[0-9]\{1,2\}\(:[0-9]\)\{3\}/block/^ ^' \ \ | while IFS=' ' read Path HostFull ID do # OLD line: left in for reasons of readability # IFS=: read HostMain HostMid HostSub <<< "$HostFull" # NEW lines: will now also work without a hitch on r/o environments IFS=: h=($HostFull) HostMain=${h[0]}; HostMid=${h[1]}; HostSub=${h[2]} if echo $Path | grep -q '/usb[0-9]*/'; then echo "(Device $ID is not an ATA device, but a USB device [e. g. a pen drive])" else echo $ID: ata$(< "$Path/host$HostMain/scsi_host/host$HostMain/unique_id").$HostMid$HostSub fi done done # restore original IFS IFS="$OLDIFS"