bash alias piping problem

Tråden skapades och har fått 7 svar. Det senaste inlägget skrevs .
1

att läsa man sidor i bbedit kan ibland vara trevligt tycker jag så i tsch hadde jag:

alias bbman 'man \!:1 | col -b | bbedit'

som pipar man sidan till bbedit (genom col fär att strippa fyrkantor och skit)

så översatt till bash borde det ju bli:

alias bbman='man $1|col -b|bbedit'

vilket tyvärr ger:

[johan@chewbacca]$ bbman ls
What manual page do you want?
Sorry, the bbedit tool has experienced an error: -43
    File not found. Use -c to create a file for editing.

dock funkar tex "man ls|col -b|bbedit" utan problem, så jag gissar på att det är alias som inte fattar riktigt. Några som vet vad som skall göras för att dedt skall funka?

ok, att köra det som en funktion funkar ju dock...

function bbman () { man $1 | col -b | bbedit; }

Prova med

" " istället. Funkar för mina aliases.

Ciryon

samma resultat, men som sagt, köra det som en funktion funkar ju..

Är det inte så att ' ' i bash ger den literala strängen medan " " tillåter att $1 tolkas?

njae tex alias megaman='man $1' funkar ju som det bör..

  • Medlem
  • International user
  • 2004-01-06 02:55

man bash:
There is no mechanism for using arguments in the replacement text. If arguments are needed, a shell function should be used (see FUNCTIONS below).

Ahaa... man måste alltså använda en funktion om $1 inte är i slutet av aliaset?

Ciryon

1
Bevaka tråden