有没有办法访问键入的确切命令行?
(变量展开后正常)
这是我能想到的实现以下目标的唯一方法:
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"包装器"的更好方法,我也想听听。
您是否在脚本中尝试过:
svn commit "$@"
解释:
-
$@
是一个特殊变量,包含 shell 的所有参数,起始价为 $1。
内部有效调用您可以:
svn commit "$@"
至于确切地看到它是如何打字的——没有。您无法区分a b
和a b
(注意参数之间的一个和两个空格 - 哎呀,我认为即使是 SO 也隐藏了第二个空格;))。但你不需要。
如果脚本本身不需要参数,另一种方法是使用别名,如下所示
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]