On 11/24/20 6:01 AM, Yi Zhang wrote: > On 11/24/20 11:23 AM, Bart Van Assche wrote: >> On 11/23/20 5:04 PM, Yi Zhang wrote: >>> - insmod "/lib/modules/$(uname >>> -r)/kernel/drivers/infiniband/ulp/srpt/ib_srpt.ko" "${opts[@]}" || >>> return $? >>> + insmod "$(ls /lib/modules/"$(uname >>> -r)"/kernel/drivers/infiniband/ulp/srpt/ib_srpt.*)" "${opts[@]}" || >>> return $? >> Is 'ls' needed here or is 'echo' sufficient? > Actually it doesn't work without ls > $ insmod "/lib/modules/"$(uname > -r)"/kernel/drivers/infiniband/ulp/srpt/ib_srpt.*" > insmod: ERROR: could not load module > /lib/modules/5.10.0-rc5/kernel/drivers/infiniband/ulp/srpt/ib_srpt.*: No > such file or directory > > and it works with echo, I can change to echo if you prefer > $ insmod "$(echo /lib/modules/"$(uname > -r)"/kernel/drivers/infiniband/ulp/srpt/ib_srpt.*)" "${opts[@]}" || > return $? 'echo' is a shell built-in while ls is not built-in into bash, so echo is faster. How about insmod "/lib/modules/$(uname -r)/kernel/drivers/infiniband/ulp/srpt/ib_srpt."* (no echo, no ls, asterisk outside double quotes)? Thanks, Bart.