udev regras com uma expressão matemática

0

Eu tenho uma regra do udev que cria um symlink para dispositivos seriais (portas seriais USB) usando uma expressão como esta: SYMLINK+="MyDevice_%n" . O% n atribui o número do nó do dispositivo do sistema começando com 0. Existe uma maneira de modificar a numeração - em vez de% n, talvez% n + 1? Expressões matemáticas não funcionam em uma regra do udev. Eu posso usar um script bash para fazer o equivalente a echo $((%n+1)) , mas não sei como fazer isso em uma regra do udev. Alguma sugestão útil?

    
por JimFred 09.07.2013 / 05:43

1 resposta

0

Use o campo PROGRAM das regras do udev para executar uma expressão / bin / sh echo e capturar o resultado usando% c, assim ...

PROGRAM="/bin/sh -c 'echo $((%n+1))'", SYMLINK+="MyDevice_%c"

O link simbólico resultante terá o equivalente a MyDevice_$((%n+1)) ou MyDevice_1 se% n for zero. A construção $ (()) é chamada de "expansão aritmética" e faz com que o conteúdo seja avaliado como uma expressão inteira. É um elemento de sintaxe do shell.

    
por 09.07.2013 / 06:56