我有一个运行具有长路径名的可执行文件的脚本。我想删除这个可执行文件,以便我可以测试脚本

时间:2017-04-05 20:13:01

标签: bash sh alias

正如标题所说,我有一个脚本,可以从一个非常长的路径名启动可执行文件。我实际上不能对脚本进行任何更改,因为它不是我的,但我需要能够测试它。我基本上想做这样的事情:

alias /some/really/long/path/name/for/this/executable/run.sh='/usr/bin/echo'

但是,这不适用于别名中的/

如何正常运行脚本,但" stub"或"模拟"那一行?问题行在一个函数中,所以我能够source脚本没有任何问题。我只是不确定一旦我采购了它该做什么。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以先通过sed运行脚本,将run.sh替换为您想要的任何内容,然后将sed输出作为test而不是原始输出运行。否则应该100%相同。

答案 1 :(得分:0)

cannot export aliases to scripts。如果您拥有root权限,则可以改为创建绑定:

$ mkdir replacement
$ ln -s /usr/bin/echo replacement/run.sh
$ sudo mount --bind replacement /some/really/long/path/name/for/this/executable/

绑定将用另一个目录替换目录,类似于符号链接,但在使用

卸载替换后原始目录将保持不变
$ sudo umount /some/really/long/path/name/for/this/executable/

无论哪种方式,为什么不将这两个脚本复制到您的主目录并在本地修改它们?