分页: 1 / 1

怎么样简化 mkdir 1234 ; cd 1234 这类的命令? 有bash脚本么?

发表于 : 2012-03-24 10:31
riptide2012
我有个python脚本写alias

像 alias fq='flexcmd.py "ssh -p %s -qTfnN -D 7070 %s"'

平时输入 fq xxx xxxx 就好了

但对cd这类shell内置的起不到作用。我这个脚本有类似的bash版本么?

代码: 全选

import sys
import os

subs_cnt = sys.argv[1].count("%s")
args_count = len(sys.argv) - 2

if subs_cnt > args_count and args_count == 1:
   args = tuple([sys.argv[2]] * subs_cnt)
else:
   args = tuple(sys.argv[2:])

sys.stdout.write(sys.argv[1] % args + "\n")
os.system(sys.argv[1] % args )

Re: 怎么样简化 mkdir 1234 ; cd 1234

发表于 : 2012-03-24 10:35
aerofox
定义一个函数或别名

代码: 全选

md()
{
    mkdir -p "$1" && cd "$1"
}

Re: 怎么样简化 mkdir 1234 ; cd 1234

发表于 : 2012-03-24 11:17
riptide2012
aerofox 写了:定义一个函数或别名

代码: 全选

md()
{
    mkdir -p "$1" && cd "$1"
}
差不多是这种意思,但尼这种多一个命令就要再写一个吧

我有个python脚本写alias,但对cd这种shell内置的起不到作用。我这个脚本有bash版本么?

代码: 全选

import sys
import os

subs_cnt = sys.argv[1].count("%s")
args_count = len(sys.argv) - 2

if subs_cnt > args_count and args_count == 1:
	args = tuple([sys.argv[2]] * subs_cnt) 
else:
	args = tuple(sys.argv[2:])

sys.stdout.write(sys.argv[1] % args + "\n")
os.system(sys.argv[1] % args )

Re: 怎么样简化 mkdir 1234 ; cd 1234 这类的命令? 有bash脚本么?

发表于 : 2012-03-24 13:22
自由建客
没看懂

Re: 怎么样简化 mkdir 1234 ; cd 1234 这类的命令? 有bash脚本么?

发表于 : 2012-03-24 14:24
redhatlinux10
bash的别名不支持参数,所以,你必须定义函数来实现你的需求。至少在bash中是这样的。

Re: 怎么样简化 mkdir 1234 ; cd 1234 这类的命令? 有bash脚本么?

发表于 : 2012-03-24 14:54
riptide2012
自由建客 写了:没看懂
就是偏函数

Re: 怎么样简化 mkdir 1234 ; cd 1234 这类的命令? 有bash脚本么?

发表于 : 2012-03-24 14:56
riptide2012
redhatlinux10 写了:bash的别名不支持参数,所以,你必须定义函数来实现你的需求。至少在bash中是这样的。
你说的没错,我就是看看有没有现有的可以用的脚本或者函数

Re: 怎么样简化 mkdir 1234 ; cd 1234 这类的命令? 有bash脚本么?

发表于 : 2012-03-24 16:01
自由建客
什么叫“偏函数”?