我有一个运行带有长路径名称的可执行文件的脚本。我想把这个可执行文件写出来,这样我就可以测试脚本

问题描述:

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

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

然而,随着别名的/这不会工作。

如何正常运行脚本,但“stub”或“mock”那一行?问题行在一个函数中,所以我能够source脚本没有任何问题。我只是不知道该怎么办,一旦我有它的来源。

任何想法?

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

+0

这正是我所需要的。好决定。 – R4F6

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/ 

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