Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 是否有一种方法可以在其他源代码脚本中源代码bash脚本_Linux_Bash - Fatal编程技术网

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
时,我也应该删除超时:)