alias的问题

alias的问题

命令行中可以执行下面的命令来挂载共享目录:
smbmount //magiclinux/bt /mnt/network -o iocharset=cp936
我想用alias来简化命令:
alias smbmount='smbmount -o iocharset=cp936'
之后运行:
smbmount //magiclinux/bt /mnt/network
就不行。我看了帮助,smbmount的格式为
smbmount {service} {mount-point} [-o options]
出错的原因可能是作alias后变成:
smbmount -o iocharset=cp936 //magiclinux/bt /mnt/network(这条命令再命令行下执行是会出错)

既然如此,我的想法是不是不可行了??如果可以的话alias要怎样写呢?
使用 function 实现如何呢?
x(){
echo $1 $2 opt ;
}
可以啊
不过麻烦Ivn解释一下上面的函数好不好,我还没学过shell编程,现在也没时间去找相关的资料。麻烦了
alias smbmount='smbmount %1 %2 -o iocharset=cp936 '

我的环境是redhat9 下 bash2.05b,不是每个bash都可以这么用,偶在cygwin下面用的时候就不行,你自己试试吧
[quote:a549f1063d="xilihuala"]alias smbmount='smbmount %1 %2 -o iocharset=cp936 '

我的环境是redhat9 下 bash2.05b,不是每个bash都可以这么用,偶在cygwin下面用的时候就不行,你自己试试吧[/quote]

rh9 可以吗?我的 debian sarge 不行.
引用:
bash --version
GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
Copyright (C) 2002 Free Software Foundation, Inc.
[code:1]
$ alias x='echo %1 %2 file'
$ x 2 3
$ %1 %2 file 2 3
[/code:1]
[quote:28c72e1c15="GGGO"]可以啊
不过麻烦Ivn解释一下上面的函数好不好,我还没学过shell编程,现在也没时间去找相关的资料。麻烦了 [/quote]

语法:
function name () {
....
}

其中 function 可选. 所以上面那个 x 可以写成:
x () {
...
}

x 函数中的 $1 $2 是传递给函数的参数. 所以
x 1 2
会输出 1 2
依此类推 $3 ,$4 代表传入的 第三,第四个参数.

===
btw:
本版置顶或精华中都该有 shell 入门的文章的,
看看会有用的.
谢谢xilihuala的回帖,不过可惜在我这里不行。
同样感谢Ivn的回帖,thanks!

还想问一句
函数能否写在文件里,然后在命令行下直接调用?能的话要怎样写这个文件(以上面那个函数为例子)。
~/.bashrc

添加到文件最后就可以了.
谢啦