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" <
bmike1@gmail.com> 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 <kevin@fries-biro.com>
> 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" <bmike1@gmail.com> 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 <
>>> matt@birchwood-abbey.net> wrote:
>>>
>>>> > From: Michael Havens <bmike1@gmail.com>
>>>> > 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 - PLUG-discuss@lists.phxlinux.org
>>>> To subscribe, unsubscribe, or to change your mail settings:
>>>> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>>>>
>>>
>>>
>>> ---------------------------------------------------
>>> PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
>>> To subscribe, unsubscribe, or to change your mail settings:
>>> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>>>
>>
>> ---------------------------------------------------
>> PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
>> To subscribe, unsubscribe, or to change your mail settings:
>> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>>
>
>
> ---------------------------------------------------
> PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>
---------------------------------------------------
PLUG-discuss mailing list -
PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss