Oh dear. Yeah, that would definitely do it.
The shell won't expand the second alias because it's an argument, not a command, from the shell's perspective. In bash et al., you might be able to do "alias1 ( alias2 )". No clue about tcsh.
Checking the man pages, bash accommodates this if the final character of the alias is a space (!) but I don't see anything similar for tcsh. Using a shell function in bash instead of an alias would also enable the desired behavior, maybe that would work in tcsh, too?
-Adam
On May 5, 2015 1:08:10 AM CDT, Trevor Cordes trevor@tecnopolis.ca wrote:
The plot thickens...
I double-checked the exact command I was running when I did the grep...
I ran:
n19 grep -r foobar /
n19 is an alias I've been using forever (and as per last month's RTFM): /bin/nice -19 /usr/bin/ionice -c2 -n7 -t
I n19 almost everything long-lasting / non-interactive I run.
It just dawned on me: "nah, the shell (tcsh) couldn't be expanding the n19 alias and *not* expanding the grep alias, could it?"
Sure enough, after a few tests, it is clear the shell only expands the first alias on the line. So that means (tada) my grep -r wasn't being run with the --devices option! That is why it was opening the device files. In my quest to be "nice", I shot myself in the foot.
So now the question is why doesn't the shell expand both aliases (I guess it's a safety / can't-tell-what-you-mean issue); is there a way to make the n19 alias expand the command listed after it too; or can I tell the shell to expand aliases after "modifier" commands (nice, xargs, etc).
Nice test case (may have to be modified for bash):
#alias n19 '/bin/nice -19 /usr/bin/ionice -c2 -n7 -t'
#nice n19 echo bobo /bin/nice: n19: No such file or directory
#n19 n19 echo bobo ionice: failed to execute n19: No such file or directory
In a perfect world the system would "do what I mean" and both above commands would succeed, just as this does:
nice nice echo bobo _______________________________________________ Roundtable mailing list Roundtable@muug.mb.ca http://www.muug.mb.ca/mailman/listinfo/roundtable