2012-12-04 4 views
1

스크립트가 인수 값을 인쇄 할 때 usb_mount.sh 파일에서통과 인수는 규칙에서

ACTION=="add", RUN+="/appmount/scripts/usb_mount.sh %E{ID_FS_LABEL} %E{DEVNAME}" 

를 장착 인수 "LABEL"와 "DEVNAME"를 전달하여 실행 파일을 파일 as

echo "LABEL: $1 DEVNAME: $2" # this does not work reliably 

일부 장치에는 빈 LABEL 필드가있어 DEVNAME이 레이블로 인쇄됩니다. bash 스크립트에서 args를 큰 따옴표로 전달할 수 있으며 args가 null 인 경우에도 작동합니다.

args를 udev 규칙에 전달할 때와 동일한 기능은 무엇입니까?

이 문제의 해결 방법은 인수의 순서를 전환하는 것일 수 있습니다. 신뢰할만한 방법이 있습니까?

ACTION=="add", RUN+="/appmount/scripts/usb_mount.sh '%E{ID_FS_LABEL}' '%E{DEVNAME}'" 

가주의 : :이 테스트를하지 않았다

답변

4

당신은 작은 따옴표 대신에 당신이 언급 한 따옴표의을 사용할 수 있어야합니다.

프로그램 이름과 다음 인수는 공백으로 구분 : 어쩌면 변수 대체

키 "RUN"에 대해 man udev에서 인용 ... 작은 따옴표 안에 실패합니다. 작은 따옴표를 사용하여 인수를 공백으로 지정할 수 있습니다.

1

그냥 설정하고 시스템이 VM웨어를 실행중인 경우 여기 예를 들어 쿼리 udev에의 ENV는 확인 :

cat /etc/udev/rules.d/99-vmware.rules 
KERNEL=="id", SUBSYSTEM=="dmi", ATTR{sys_vendor}=="VMware, Inc.", ENV{VMWARE}='defined' 

udevadm info -e | grep 'VMWARE=' 
E: VMWARE=defined