changer une ligne d'un script bash

Top Page

Reply to this message
Author: anne.guilde@free.fr
Date:  
To: ML Guilde
Subject: changer une ligne d'un script bash
bonjour,

Dans un script bash j'ai 2 variables importantes :

UUID et BUS_USB


UUID='2a5429e8-d3bc-4f1f-9416-821cd1ec72b7' ; \
echo "uuid : $UUID"; \
DEV_NAME=$(blkid -U $UUID); \
echo "dev_name : $DEV_NAME"; \
DEV_NAME1="/dev/$(basename $(dirname $(readlink
\/sys/class/block/$(basename $DEV_NAME))))"; \
echo "dev_name1 : $DEV_NAME1"; \
DEVICE1=$(udevadm info --query=path --name=${DEV_NAME1} --attribute-walk
| egrep "looking at parent device" | head -1 | sed -e "s/.*looking at

parent device '\(\/devices\/.*\)\/.*\/host.*/\1/g"); \
echo "device1 : $DEVICE1"; \
DEV_BUS_ID=${DEVICE1##*/}; \
echo "dev_bus_id : $DEV_BUS_ID"

=>

# UUID='2a5429e8-d3bc-4f1f-9416-821cd1ec72b7'; \
> echo "uuid : $UUID"; \
> DEV_NAME=$(blkid -U $UUID); \
> echo "dev_name : $DEV_NAME"; \
> DEV_NAME1="/dev/$(basename $(dirname $(readlink

\/sys/class/block/$(basename $DEV_NAME))))"; \
> echo "dev_name1 : $DEV_NAME1"; \
> DEVICE1=$(udevadm info --query=path --name=${DEV_NAME1}

--attribute-walk | egrep "looking at parent device" | head -1 | sed -e
"s/.*looking at parent device '\(\/devices\/.*\)\/.*\/host.*/\1/g"); \
> echo "device1 : $DEVICE1"; \
> DEV_BUS_ID=${DEVICE1##*/}; \
> echo "dev_bus_id : $DEV_BUS_ID"

uuid : 2a5429e8-d3bc-4f1f-9416-821cd1ec72b7
dev_name : /dev/sdc1
dev_name1 : /dev/sdc
device1 : /devices/pci0000:00/0000:00:14.0/usb2/2-3
dev_bus_id : 2-3

Pour l'UUID pas de souci, par contre le DEV_BUS_ID change de temps en
temps au reboot du pc selon ce qui est branché en usb ou ...

J'ai plusieurs script qui ont la ligne
BUS_USB="3-1"
et que j'aimerais changer en automatique avec le commande que j'ai donné
ci-dessus

J'ai commencé de faire un script

----
#!/bin/bash

# set -x

UUID='2a5429e8-d3bc-4f1f-9416-821cd1ec72b7'
echo "uuid : $UUID"

DEV_NAME=$(blkid -U $UUID)
echo "dev_name : $DEV_NAME"

DEV_NAME1="/dev/$(basename $(dirname $(readlink
\/sys/class/block/$(basename $DEV_NAME))))"
echo "dev_name1 : $DEV_NAME1"

DEVICE1=$(udevadm info --query=path --name=${DEV_NAME1} --attribute-walk
| egrep "looking at parent device" | head -1 | sed -e "s/.*looking at

parent device '\(\/devices\/.*\)\/.*\/host.*/\1/g")
echo "device1 : $DEVICE1"

DEV_BUS_ID=${DEVICE1##*/}
echo "dev_bus_id : $DEV_BUS_ID"
----

Comment faire pour changer en automatique dans les scripts la ligne
BUS_USB="3-1", le 3.1 avec le $DEV_BUS_ID que j'ai trouvé.

Avec sed?
Mais avec quelle commande exactement?

Merci
Anne