Re: bash - pathname expansion controls 'set -f' or 'set -o noglob' on broken?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On 08/13/2010 02:27 AM, C Anthony Risinger wrote:
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



Guys,

Oh 5h17!! (said while wearing the dunce cap). When at first I got stuck on this, I created a new directory and copied the script into it along with pacman-foo for testing. I had my editor open and the script up via sftp to the server. Some idiot never closed the original script and re-opened the copy of the script in the new tmp subdirectory... So all the quoting, etc. I did, never changed the script I was running :-(

	That's it -- I'm going to bed.. Thanks for the help.

P.S. full picture:

                                  Arch Server
-----------     editing        =================
| me on my |----------------->| original - dir 1|
| laptop   |---------------\  |    |            |
-----------     running     ->| copy in  - dir 2|
                               =================


it's good to laugh at yourself every once in a while :p



--
David C. Rankin, J.D.,P.E.
Rankin Law Firm, PLLC
510 Ochiltree Street
Nacogdoches, Texas 75961
Telephone: (936) 715-9333
Facsimile: (936) 715-9339
www.rankinlawfirm.com


[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux