著者: anne.guilde@free.fr
日付:
To: ML Guilde
題目: 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