07-15-05 11:05 PM
On Fri, 15 Jul 2005 11:44:40 -0400, Ho-Kuo Chan
<hchan@wavesat.com> wrote:
> Hi,
> I am a relative newbie to BASH programming but I've read and learned a
> lot but I can't seem to solve my problem. I am trying to figure out the
> major number of a device through cat /proc/devices piped to awk:
>
> cat /proc/devices | awk '/theDeviceName/ { printf $1 }'.
>
> I am trying to write a function that receives the device name as an
> argument:
>
> function find_major()
> {
> MAJOR=`cat /proc/devices | awk '/$1/ { printf $1 }'`
>
> # do some other work...
> }
>
> I have tried this:
> function find_major()
> {
> MAJOR=`cat /proc/devices | awk '/$1/ { printf \$1 }'`
>
The problem is that you use single quotes, so the $1 representing the
function argument is not expanded.
MAJOR=`awk "/$1/ { printf \$1 }" /proc/devices`
MAJOR=`awk -v dev=$1 '$2~dev{printf $1}' /proc/devices`
--
Tonight you will pay the wages of sin; Don't forget to leave a tip.
[ Post a follow-up to this message ]
|