Re: commands

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
+ (text/plain)
Delete this message
Reply to this message
Author: Kevin Fries
Date:  
To: Main PLUG discussion list
Subject: Re: commands
The brackets expand in place. It does not expand your command, but instead
the parameters. Let's say I wanted to create a list of direcrories. I
could do something like this

$ mkdir -p a/{b,c/{d,e,f}}

This expands to

$ mkdir -p a/b a/c/d a/c/e a/c/f

Sidenote... what if you wanted a directory named abc and second one abcde?

$ mkdir -p abc{,de}

The comma with nothing before it, gives you abc, and the de after the comma
gives you abcde

Does this make more sense? apt-get is your command, and update and upgrade
are the parameter to the command. When you were using the curley brackets,
you were expanding a single command with two incompatible parameters.

Hope this makes sense.

Kevin
On Dec 23, 2014 12:09 AM, "Michael Havens" <> wrote:

> thank you so much. the way I figure it 'apt-get' is the command I'm
> expanding. But the command must be 'apt-get update, and 'apt-get upgrade'.
>
> :-)~MIKE~(-:
>
> On Tue, Dec 23, 2014 at 12:03 AM, Kevin Fries <>
> wrote:
>
>> Michael,
>>
>> As Matt said, braces expand into the same command, they are not used for
>> multiple commands. FOR is used for multiple commands. While this is much
>> more work in my opinion, this would also work... provided that there is no
>> error.
>>
>> $ for cmd in update upgrade; do sudo apt-get ${cmd}; done
>>
>> This runs the two command in serial regardless of the results of either
>> command. My original answer did not run the second command if the first
>> command failed.
>>
>> Kevin
>> On Dec 22, 2014 11:55 PM, "Michael Havens" <> wrote:
>>
>>> thank you Matt and Kevin. I was looking for a way to combine the two
>>> commands with the curly brackets.
>>>
>>> :-)~MIKE~(-:
>>>
>>> On Mon, Dec 22, 2014 at 11:36 PM, Matt Birkholz <
>>> > wrote:
>>>
>>>> > From: Michael Havens <>
>>>> > Date: Mon, 22 Dec 2014 15:46:23 -0700
>>>> >
>>>> > I was thinking, I could type in 'sudo apt-get update;sudo apt-get
>>>> > upgrade' but what would be a more efficient way?
>>>> >
>>>> > [...]
>>>> >
>>>> > sudo apt-get {update, upgrade}
>>>> > E: Invalid operation {update,
>>>> >
>>>> > This is interesting: when I typed in 'sudo {apt-get {update;
>>>> upgrade}}' it
>>>> > didn't give me an error for '{update'
>>>> >
>>>> > So does anyone know what I'm talking about and how to do it?
>>>>
>>>> Brace expansion is performed on a command. A semicolon separates
>>>> commands. Your command line
>>>>
>>>>         sudo {apt-get {update; upgrade}}

>>>>
>>>> is interpreted as two commands:
>>>>
>>>>         sudo {apt-get {update
>>>>         upgrade}}

>>>>
>>>> So sudo complains about a strange command name "{apt-get", the
>>>> argument "{update" passes without comment, and the shell complains
>>>> about the command name "upgrade}}".
>>>>
>>>> You cannot stick an unescaped semicolon inside braces.
>>>>
>>>> Most efficient? Stick this in ~/.bashrc
>>>>
>>>>         alias do-it='sudo sh -c "apt-get update; apt-get upgrade"'

>>>>
>>>> so you can say just
>>>>
>>>>         do-it

>>>>
>>>> ?
>>>> ---------------------------------------------------
>>>> PLUG-discuss mailing list -
>>>> To subscribe, unsubscribe, or to change your mail settings:
>>>> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>>>>
>>>
>>>
>>> ---------------------------------------------------
>>> PLUG-discuss mailing list -
>>> To subscribe, unsubscribe, or to change your mail settings:
>>> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>>>
>>
>> ---------------------------------------------------
>> PLUG-discuss mailing list -
>> To subscribe, unsubscribe, or to change your mail settings:
>> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>>
>
>
> ---------------------------------------------------
> PLUG-discuss mailing list -
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>

---------------------------------------------------
PLUG-discuss mailing list -
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss