Re: [opensuse] alias failure



On 2007/07/28 13:58 (GMT-0700) Randall R Schulz apparently typed:

On Saturday 28 July 2007 13:32, Felix Miata wrote:

I'm having no luck figuring out why

alias Vol='tune2fs -l $1 | grep volume'

Aliases don't take positional parameters, at least not in BASH (I think

So it's just an accident that the following aliases all work as I want/expect?
alias ll='ls -l $*'
alias rpmqa='rpm -qa | grep $*'
alias test='echo $*'
alias vol='tune2fs -l $1'

they do in the Csh family, if I recall correctly). They simply expanded
verbatim in front of any arguments you give, so if you invoke it
with "/dev/hda7" as an argument, it's like running this command:

% tune2fs -l $1 | grep volume /dev/hda7

It's still clear as mud how "don't take positional parameters" translates
into moving /dev/hda7 to the end of the whole string.

What you're doing is tryting to run grep on /dev/hda7. Let's hope you
don't have read access!

I see what you wrote, but don't understand how /dev/hda7 shows up at the end
of everything.

causes a usage message when 'Vol /dev/hda7' is run. Can anyone
explain what I'm doing wrong, or provide a better method to discover
a volume label? --

Unlike the very limited capabilities of aliases, shell procedures are
just like separate scripts, except no file need be loaded to invoke
them. You can get the effect I think you want with this:

Vol() {
tune2fs -l "$1" |grep volume
}

I made a script with nothing but that in it, but it returns nothing.

(If you put that all on one line, you'll need a semicolon after "volume"
and before the closing brace.)

Beware that if you're going to try this, you should undefine the alias
first. They intefere, and if I'm not mistaken the alias will override
the shell procedure.

Once you get something you like, put it in your .bashrc, though
realistically, there's no particular reason not to just make a shell
script out of this.

Other than the quotes, I don't see the difference between the content of your
sample script, and putting essentially the same thing into .bashrc, which is
where all my aliases live, and why I use aliases instead of simple scripts
(easier to copy one file to new username on new installation).

Lastly, don't use an "exit" for early return in a shell procedure. It
will apply to the shell that invoked it. There's a "return" keyword
that works the same as exit and causes just the shell procedure to
terminate before reaching its last statement, not the whole shell.

I appreciate the reply, but I'm not sure I understand any more now than I did
before starting the thread. :-(
--
"All scripture is God-breathed and is useful for teaching,
rebuking, correcting, and training in righteoousness."
2 Timothy 3:16 NIV

Team OS/2 ** Reg. Linux User #211409

Felix Miata *** http://mrmazda.no-ip.com/
--
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse+help@xxxxxxxxxxxx



Relevant Pages

  • Re: [opensuse] alias failure
    ... So it's just an accident that the following aliases all work as I ... It's uncommon for interactive shells to have any positional parameters ... Unlike the very limited capabilities of aliases, shell procedures ... I made a script with nothing but that in it, ...
    (SuSE)
  • Re: Learning C with Older books ?.
    ... Tim Rentsch wrote: ... This is enforced by use of an alias for gcc. ... Since my system make does not use the shell this ... which knows nothing about 4dos aliases (and vice ...
    (comp.lang.c)
  • Re: Learning C with Older books ?.
    ... Tim Rentsch wrote: ... This is enforced by use of an alias for gcc. ... Since my system make does not use the shell this ... which knows nothing about 4dos aliases (and vice ...
    (alt.comp.lang.learn.c-cpp)
  • Re: Automating alias saving in bash
    ... Deleting aliases permanently requires editing .aliases ... AND you can't use "a" again unless you first unalias within the shell, ... Command "unalias -a" is handy for big changes. ... but you can use the original command "alias" for listing aliases. ...
    (comp.os.linux.misc)
  • Re: Could alias include the condition structure?
    ... I want to use the alias as the macro in the function. ... Aliases are not expanded when the shell is not interactive, ... the description of shopt under SHELL BUILTIN COMMANDS below). ...
    (comp.unix.shell)