OT: scripting help - can you check a string for starts with?

Tony Nelson tonynelson at georgeanelson.com
Wed Dec 19 15:06:32 UTC 2007


At 3:58 PM +0900 12/19/07, John Summerfield wrote:
>Tony Nelson wrote:
>> At 8:48 PM -0500 12/18/07, James Pifer wrote:
>>> Need a bit of scripting help. I have a very small script with a case
>>> statement. The object of the case statement is derived from the
>>> dmidecode command to determine the type of machine it is, if possible.
>>> It works fine, but we're finding that a lot of the HP type machines
>>> respond with a model number plus other information. For example, we
>>> might get these two:
>>>
>>> HP Compaq dc7700 30GB6000
>>> HP Compaq dc7700 60GB6000
>Here's a real one.
>Product Name: HP Compaq dc7700 Small Form Factor
>
>>>
>>> Those are completely made up, the point being that we want to match on
>>> just "HP Compaq dc7700" and forget the rest.
>>  ...
>>
>> case $printername in
>>     "HP Compaq dc7700"*) echo "found $printername" ;;
>> esac
>
><chortle>
>
>the example's fine, but read again what he's looking at:-)

Yes, so?  Your "real one" will be found also.  If you think what I said
won't work, give a counterexample.  Perhaps you don't want to nest two case
statements, one for "Produce Name:" and the other for the specific
products?  It's not really needed, as the match strings could all start
with "Product Name:"*.

case $line in
    "Product Name:"*)
        case $line in
            *"HP Compaq dc7700"*) echo "found $printername" ;;
        esac ;;
esac
-- 
____________________________________________________________________
TonyN.:'                       <mailto:tonynelson at georgeanelson.com>
      '                              <http://www.georgeanelson.com/>




More information about the users mailing list