On Fri, Aug 13, 2010 at 2:10 AM, mike rosset <schizoid29@xxxxxxxxx> wrote: > Dave you need to quote your variables ie. > > var="*pacman*"; echo "$var" > > so printf "Search: %s\n" $myvar should read > > printf "Search: %s\n" "$myvar" > > On Thu, Aug 12, 2010 at 11:39 PM, David C. Rankin > <drankinatty@xxxxxxxxxxxxxxxxxx> wrote: >> On 08/13/2010 01:32 AM, David C. Rankin wrote: >>> >>> On 08/13/2010 01:15 AM, mike rosset wrote: >>>> >>>> quote command arguments like you would normally do. >>>> >>>> ie. $ myscript "*pacman*" >>> >>> Nope: >>> >>> 01:32 nirvana:~/scr/arch/tmp> ./tst.sh "pacman*" >>> Search: pacman-foo >>> >>> >> >> Mike, >> >> I'm sorry, that was a short answer. My thoughts in this situation >> were that partial or soft-quoting "" would not offer any additional >> protection that full or hard-quoting '' did not already provide. From ABS: >> >> partial quoting [double quote]. "STRING" preserves (from interpretation) >> most of the special characters within STRING. >> >> full quoting [single quote]. 'STRING' preserves all special characters >> within STRING. This is a stronger form of quoting than "STRING". >> >> I'd run across this a couple of days ago on the pacman -Ss reformat >> script work. yes what mike said is correct. the best way to remember/catch stuff like this, is to always remember that bash variables are almost pure, direct "text-replacement"; by this i mean the contents of the variable are substituted in place of the variable, and _then_ the expression is evaluated. so, in your case, this line: printf "Search: %s\n" $myvar expanded/substituted as: printf "Search: %s\n" pacman* which expanded yet again by bash to: printf "Search: %s\n" pacman-foo before finally being passed to printf(). C Anthony