Linux 是否有一种方法可以在其他源代码脚本中源代码bash脚本
我的问题如下: 我有我的库(我们称之为Linux 是否有一种方法可以在其他源代码脚本中源代码bash脚本,linux,bash,Linux,Bash,我的问题如下: 我有我的库(我们称之为qa baslib.sh)和各种util函数,包括我们正在开发的测试脚本 现在,其他开发人员创建了bash脚本库来支持到各种服务器的SSH连接(我们称之为global\u SSH)。它看起来像: 全局\u ssh: #!/bin/bash global_ssh(){ # Doing some ssh stuff } 我正在寻找像这样的global ssh文件: qa baslib.sh #!/bin/bash . /<path-to&g
qa baslib.sh
)和各种util函数,包括我们正在开发的测试脚本
现在,其他开发人员创建了bash脚本库来支持到各种服务器的SSH连接(我们称之为global\u SSH
)。它看起来像:
全局\u 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
}
#/bin/bash
. //qa-util脚本/global_-ssh
函数some_util_function(){
伺服器=$1
命令=$2
#在这里,我调用global_ssh函数
超时-s 9 30全局_ssh$sever$命令
}
但当我最终执行该函数时,通过从命令行获取它,我得到了错误:
]# . /<path-to>/qa-bashlib.sh
]# some_util_function $server $command
]# timeout: failed to run command `global_ssh': No such file or directory
]#//qa-bashlib.sh
]#某些_util_函数$server$命令
]#超时:无法运行命令“global\u ssh”:没有这样的文件或目录
出了什么问题,有什么解决办法吗
感谢@ruakh提到的,
timeout
不能以bash函数作为参数运行
完整答案:
脚本中的shebang#1是打字错误还是原因?@frlan抱歉,已修复:)您确定系统的
超时可以运行shell函数吗?(什么是键入timeout
打印?)编辑以添加:请参阅。@ruakh/sbin/timeout
。谢谢,伙计,这正是重点!以前只有ssh
所以timeout-s930ssh
是有效的,但是当我用函数替换ssh
时,我也应该删除超时:)