Вопрос уже имеет принятый ответ, но я решил поделиться своим вариантом решения , предусмотренном derobert .
Мои требования были немного по-разному - в дополнение к предоставлению номеров «увеличения» индекса на новые устройства - я хотел повторные номера индекса, которые были отданы устройствами, которые были удалены из системы.
Правило UDEV для настройки переменной среды будет выглядеть что-то вроде этого:
IMPORT{program}="/usr/local/sbin/unique-num /dev miner MINER_NUM"
в моем решении, я не использую файл для отслеживания индекса, я просто цикл на основе существующих SymLink И найдите первый доступный индекс:
/ USR / LOCAL / SBIN / Unique-Num
Сценарий:
#!/bin/bash
if [ $# -ne 3 ]; then
echo "Usage: $0 location prefix var-name" >&2
exit 1
fi
location="$1"
prefix="$2"
key="$3"
needindex=1
index=0
while [ $needindex -eq 1 ]
do
if [ ! -e $location/$prefix$index ]; then
needindex=0
echo "$key=$index"
else
(( index++ ))
fi
done
Это будет, конечно, распечатать имя var с первым доступным индексом, например, если Эти SymLink уже существуют:
miner0
miner1
miner2
, а затем Miner1
отсоединяется от системы - мы остались с:
miner0
miner2
Запуск скрипта вернется:
MINER_NUM=1
... как Это сейчас первый доступный индекс .
Лучше использовать ip a
, но при текущем выводе можно использовать awk
:
awk '
BEGIN { RS="\n\n"}
/eth0/ && /UP/ {ifc=$1; ip=$6; subn=$8; gway=$10; mac=$12}
END {print "Interface: "ifc "\nIP: "ip "\nSubnet: "subn "\nGateway: "gway "\nMac: "mac}
' <(ifconfig -a)
Interface: eth0:
IP: 192.168.0.154
Subnet: 255.255.255.0
Gateway: 192.168.0.255
Mac: b8:27:eb:3c:03:fe
Это приведет только к печати подробных данных интерфейса, если он работает.
-121--217579-Это поможет вам
ip r l & & ip addr show {имя интерфейса} | grep ether
Ex. ip r & & ip addr show eth0 | grep ether
Выход образца
ip r & & ip addr show wlan0 | grep ether
по умолчанию через 192.168.1.254 dev wlan0 proto static
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.42
связь/эфир e4: d5: 3d: ef: 90: a9 brd ff: ff: ff: ff: ff: ff
ip r l
Это даст вам шлюз, ip, интерфейс, маску сети
ip addr show {имя интерфейса}
Это даст вам оставшуюся часть сведений MAC-адрес
Попробуйте
sudo chown -v hooman. simple-todos/
Не забудьте точку после hooman
ls -l | grep simple
drwxr-xr-x 2 root 4096 Дек 12 11:23 simple-todo
sudo chown -v kaustubh. simple-todos/
изменил владение «simple-todos/» с root: root на kaustubh: kaustubh
kaustubh @ hacked: ~/test $
ls -l | grep simple
drwxr-xr-x 2 kaustubh kaustubh 4096 Дек 12:23 simple-todos