当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : bashrc里alias加参数如何做?
帖子发表于 : 2008-09-06 21:58 

注册: 2008-03-15 10:34
帖子: 223
送出感谢: 0 次
接收感谢: 0 次
我在~/.bashrc加上了这行:
代码:
alias k="kwrite $1 > /dev/null 2>&1 &"


目的是希望当我在终端输入k 1.c的时候就能建立一个名为1.c的文件并用kwrite打开,可是输出却是:
bash: 1.c: command not found 并同时打开一个kwrite,而不是默认的建立了一个1.c再打开

而直接在命令行输入kwrite 1.c > /dev/null 2>&1 & 却可以,请问应该怎么搞?

PS:要是用
代码:
alias k="kwrite $1"
也可以,但是这样编辑的时候kwrite会在终端输出一些信息,我不希望它输出,也就是说,直接输入k 1.c就可以在后台打开并不输出任何信息,不用输入kwrite 1.c > /dev/null 2>&1 &这么长一串


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-09-06 22:18 
头像

注册: 2006-02-28 3:11
帖子: 2470
送出感谢: 0 次
接收感谢: 0 次
alias 好像不能加参数。 你可以写成script

代码:
#!/bin/bash
kwrite $1 > /dev/null 2>&1 &


然后保存为$HOME/k, chmod 755 k
在bashrc里, alias k='$HOME/k'
---------------
其实你直接在终端里输入kwrite 1.c & 即可


_________________
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-09-06 23:11 

注册: 2008-03-15 10:34
帖子: 223
送出感谢: 0 次
接收感谢: 0 次
alias 是可以加参数,例如 alias ff='find . -name $1' ,然后终端输入 ff filename 就能搜索该文件了,但是一旦后面加上 > /dev/null 2>&1 & 就不正常了,把输入的filename 当作另一个命令了

yjcong的两种方法也不行,每次编辑kwrite里的文件还是会从终端输出信息,没有像-quite这样的选项


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-09-06 23:17 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
2>&1干嘛
不是要看出错信息?


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-09-07 0:56 
头像

注册: 2006-02-28 3:11
帖子: 2470
送出感谢: 0 次
接收感谢: 0 次
wanzihrg 写道:
alias 是可以加参数,例如 alias ff='find . -name $1' ,然后终端输入 ff filename 就能搜索该文件了,但是一旦后面加上 > /dev/null 2>&1 & 就不正常了,把输入的filename 当作另一个命令了

yjcong的两种方法也不行,每次编辑kwrite里的文件还是会从终端输出信息,没有像-quite这样的选项


原来你是不想要终端输出的信息啊。 我记得用gnome的时候, 可以Alt+F2然后再里面输入命令。这样, 你就看不到终端的信息了。 至于kde应该有类似的功能吧


_________________
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-09-08 21:58 

注册: 2006-07-09 12:22
帖子: 1331
地址: 南京
送出感谢: 0 次
接收感谢: 1
印象中没见 alias 的命令可以带位置参数的。$1 本就是空,此时有:
代码:
command $1 foo == command foo


所以,alias k="kwrite $1",这个只是假象。1.c 并未传给 $1。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-09-14 5:17 

注册: 2008-03-15 10:34
帖子: 223
送出感谢: 0 次
接收感谢: 0 次
alias的$1的确是假象...

就不知道怎么方便快捷地在终端从后台打开程序了


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-09-15 12:59 
头像

注册: 2006-05-19 21:42
帖子: 184
地址: NIT
送出感谢: 0 次
接收感谢: 0 次
代码:
function k()
{
kwrite $1 > /dev/null 2>&1 &
}


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-09-16 21:30 

注册: 2008-05-24 8:30
帖子: 1453
送出感谢: 2
接收感谢: 30
需要加参数时,还是用 function 方便,就象楼上的一样。
csh 的 alias 是支持参数的。


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-09-17 1:05 

注册: 2008-03-15 10:34
帖子: 223
送出感谢: 0 次
接收感谢: 0 次
感谢楼上各位提示!


页首
 用户资料  
 
11 楼 
 文章标题 : Re: bashrc里alias加参数如何做?
帖子发表于 : 2013-05-08 23:09 

注册: 2011-01-16 17:14
帖子: 117
送出感谢: 1
接收感谢: 0 次
可以加参数,alias echosth=“echo $1”

试 echosth hello
输出 hello


页首
 用户资料  
 
12 楼 
 文章标题 : Re: bashrc里alias加参数如何做?
帖子发表于 : 2015-08-27 15:46 

注册: 2007-02-06 19:34
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
alias不支持参数,可以曲线救国,这样搞:
alias dosomethig='test() { echo $1;}; test'


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译