7

有什么方法可以访问键入的确切命令行?

(变量展开后就OK了)

这是我能想到的实现以下目标的唯一方法:

myscript.sh file1 file2 file3 -m"A multi word comment" [other parameters/options]

-- 在我们有效调用的脚本中 --

svn commit file1 file2 file3 -m"A multi word comment" [other parameters/options]

-- 无需复制 svn 本身所做的所有解析,只是为了理解命令行

(我遇到的问题是,在示例中,$4 将是“-mA 多词注释”,这将是一团糟。我宁愿能够拍摄整个命令行、引号和所有,直接到 svn 正是 svn 想要看到它的方式。)

如果有人知道编写 svn“包装器”的更好方法,我也想听听。

4

3 回答 3

12

您是否在脚本中尝试过:

svn commit "$@"

解释:

  • $@是一个特殊的变量,它包含 shell 的所有参数,从 $1 开始。
于 2012-11-22T22:07:50.713 回答
2

在里面有效地调用你可以:

svn commit "$@"

至于确切地看它是如何输入的——不。您无法分辨a ba b注意参数之间的一两个空格 - 啊,我认为即使 SO 也隐藏了第二个空格;))。但你不需要。

于 2012-11-22T22:07:45.070 回答
0

如果脚本本身不需要参数,另一种方法是使用别名,像这样

alias commit='code_check && svn ci'

(其中 code_check 是在 svn 提交之前执行的脚本或函数)

然后你可以打电话

commit file1 file2 file3 -m"A multi word comment" [other parameters/options]

并且别名扩展将线变成

code_check && svn ci file1 file2 file3 -m"A multi word comment" [other parameters/options]
于 2012-11-23T01:21:02.167 回答