QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 871|回复: 8

alias的问题

[复制链接]
发表于 2004-7-1 19:33:45 | 显示全部楼层 |阅读模式
命令行中可以执行下面的命令来挂载共享目录:
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要怎样写呢?
发表于 2004-7-1 23:06:49 | 显示全部楼层
使用 function 实现如何呢?
x(){
echo $1 $2 opt ;
}
回复

使用道具 举报

 楼主| 发表于 2004-7-2 11:57:32 | 显示全部楼层
可以啊
不过麻烦Ivn解释一下上面的函数好不好,我还没学过shell编程,现在也没时间去找相关的资料。麻烦了
回复

使用道具 举报

发表于 2004-7-2 13:48:13 | 显示全部楼层
alias smbmount='smbmount %1 %2 -o iocharset=cp936 '

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

使用道具 举报

发表于 2004-7-2 15:09:41 | 显示全部楼层
[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]
回复

使用道具 举报

发表于 2004-7-2 15:20:31 | 显示全部楼层
[quote:28c72e1c15="GGGO"]可以啊
不过麻烦Ivn解释一下上面的函数好不好,我还没学过shell编程,现在也没时间去找相关的资料。麻烦了 [/quote]

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

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

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

===
btw:
本版置顶或精华中都该有 shell 入门的文章的,
看看会有用的.
回复

使用道具 举报

 楼主| 发表于 2004-7-2 17:35:38 | 显示全部楼层
谢谢xilihuala的回帖,不过可惜在我这里不行。
同样感谢Ivn的回帖,thanks!

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

使用道具 举报

发表于 2004-7-2 19:15:41 | 显示全部楼层
~/.bashrc

添加到文件最后就可以了.
回复

使用道具 举报

 楼主| 发表于 2004-7-3 15:40:17 | 显示全部楼层
谢啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 11:14 , Processed in 0.036568 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表