There have been multiple accounts created with the sole purpose of posting advertisement posts or replies containing unsolicited advertising.

Accounts which solely post advertisements, or persistently post them may be terminated.

creating an alias of a command with plenty special characters

Hello all, I wan to create an alias of this command: alias dockps = “docker ps --format “table {{.ID}}t{{.Names}}t{{.Status}}t{{.Ports}}””

The syntax for creating an alias is: alias $COMMAND = “docker ps --format “table {{.ID}}t{{.Names}}t{{.Status}}t{{.Ports}}””

However, since there are quote marks, I assume they neet to be escaped with ``. But in the case above, I’m getting the errors in fish and bash.

Fish error: $ alias dockps = “docker ps --format “table {{.ID}} {{.Names}} {{.Status}} {{.Ports}}””

alias: expected <= 2 arguments; got 3

Bash error: $ alias dockps = “docker ps --format “table {{.ID}} {{.Names}} {{.Status}} {{.Ports}}”” bash: alias: dockps: not found bash: alias: =: not found bash: alias: docker ps --format “table {{.ID}} {{.Names}} {{.Status}} {{.Ports}}”: not found

What am I doing wrong?

Thanks in advance!

Edit: For fish shell users out there, this can be accomplished by using func: $ function dockerps docker ps --format “table {{.ID}}t{{.Names}}t{{.Status}}t{{.Ports}}” end $ funcsave dockerps

I’m leaving the question up as the question with escape characters is still relevant and can be a learning resouce.

PlusMinus ,

Just a thought: It should be possible to save the default ps output does that not fit your use case better?

man 5 docker-config-json

man.archlinux.org/man/…/docker-config-json.5.en

krash OP ,

OMG! I didn’t even know about this, thanks! Will look into it, would be awesome to have ps command spit out things like I want them by default :-)

humanplayer2 ,

I think you have to alternate the quotations you use between doubles and singles, pairwise. Else the first pair is closed after --format.

So you have to use a pattern like “command level 1 ‘level 2 “level 3” more level 2’ more level 1”

Does that make sense?

friend_of_satan , (edited )

deleted_by_author

  • Loading...
  • humanplayer2 ,

    TIL! Thank you!

    clmbmb ,

    As the others have said, your first issue is using blank spaces before and after =

    Then, when you need to use double quotes in a command, the alias should be defined with single quotes, like this:

    
    <span style="color:#323232;">$ alias dockps='docker ps --format "table {{.ID}}  {{.Names}}  {{.Status}}  {{.Ports}}"'
    </span>
    
    krash OP ,

    Thank you (and all others who replied), this worked flawlessly :-)

    tkk13909 ,

    Try using ‘apostrophes’ for the outer set of quotes and see if that works

    JDubbleu ,

    Not at my computer so I can’t double check, but I believe you can replace the outer double quotes with single quotes. I’d also remove the spaces before and after the equal sign for the alias. I don’t know about fish but I know bash doesn’t like when you add spaces there.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • [email protected]
  • random
  • lifeLocal
  • goranko
  • All magazines