有没有一种方法可以在其他被调用的脚本中调用Bash脚本?

3

我的问题是:

我有一个包含各种实用函数的库(假设称为qa-baslib.sh),我在开发中将其包含到测试脚本中。

现在,另一位开发人员创建了一个支持SSH连接到不同服务器的Bash脚本库(假设称为global_ssh)。它看起来像这样:

global_ssh

#!/bin/bash

global_ssh(){

   # Doing some ssh stuff
}

我正在这样引用global-ssh文件: qa-baslib.sh
#!/bin/bash

 . /<path-to>/qa-util-scripts/global_ssh

function some_util_function() {
   server=$1
   command=$2

   # Here i'm calling global_ssh function
   timeout -s 9 30 global_ssh $sever $command
}

但是当我最终执行该函数,通过命令行从源代码中获取它时,我遇到了错误:

]# . /<path-to>/qa-bashlib.sh
]# some_util_function $server $command
]# timeout: failed to run command `global_ssh': No such file or directory

有什么问题,是否有解决方案呢?

谢谢


脚本1中的shebang是一个打字错误还是原因? - frlan
@frlan 抱歉,已修复 :) - Samuel
1
你确定你的系统的“timeout”可以运行一个shell函数吗?(“type timeout”打印什么?)编辑添加:请参见https://dev59.com/72kw5IYBdhLWcg3wXZP8。 - ruakh
感谢你,@ruakh /sbin/timeout。太准确了!之前只有 ssh,所以 timeout -s 9 30 ssh 是有效的,但是当我将 ssh 替换为函数时,我也应该移除超时时间 :) - Samuel
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接