如何使用 bash -c 调用 bash 脚本函数 [重复]

     2023-03-24     20

关键词:

【中文标题】如何使用 bash -c 调用 bash 脚本函数 [重复]【英文标题】:How to call a bash script function using bash -c [duplicate] 【发布时间】:2021-06-04 07:20:55 【问题描述】:

[更新]请注意,为了满足minimal reproducible example,这是本文的简化代码。脚本中会有更多的功能。

我在a Github repo 上有一个 Bash 脚本:

#!/usr/bin/env bash

fn_test1() 
    echo "starting ..."
    read -rp "Do you want to continue? yes/y or no/n   " PANS
    ans=$(echo "$PANS" | cut -c 1-1 | tr "[:lower:]" "[:upper:]")
    if [[ "$ans" = "Y" ]]; then
        echo "confirmed 1."
    fi
    echo "done"


fn_main() 
    if [ $# -eq 1 ]; then
        case $1 in
        "test")
            fn_test1
            ;;
        esac
    else
        echo "Something wrong."
        exit 1
    fi


fn_main "$@"

我想像这样从这个脚本中调用test 函数,但它不起作用:

bash -c "$(curl -s https://raw.githubusercontent.com/shinokada/awesome/main/test; test)"

输出是:

Something wrong.

如何在 bash 脚本中调用函数? 有可能吗?

【问题讨论】:

bash -c "$(curl -s https://raw.githubusercontent.com/shinokada/awesome/main/test)" bash test。这根本不是一个好习惯。 @shin:您的脚本中没有函数 test(顺便说一句,将函数命名为 test 是个坏主意)。脚本中的唯一函数是 fn_test1fn_main 脚本没有接收到任何参数 @user1934428 OP 想要以test 作为单纯的位置参数运行此脚本,并期望fn_test1 中的read -rp 能够工作。 @user1934428 啊~。也许我应该删除主函数并调用 fn_test1? 【参考方案1】:

脚本未接收任何参数。 你可以做以下简单的方法

wget https://raw.githubusercontent.com/shinokada/awesome/main/test

bash test test

【讨论】:

如何在bash脚本中通过函数调用将参数/参数从一个函数传递到另一个函数[重复]

】如何在bash脚本中通过函数调用将参数/参数从一个函数传递到另一个函数[重复]【英文标题】:Howtopassargs/parameterswithafunctioncallfromonefunctiontoanotherinabashscript[duplicate]【发布时间】:2019-02-2302:50:55【问题描述】:我试图弄清楚如何... 查看详情

如何使用参数制作 Bash 函数? [复制]

】如何使用参数制作Bash函数?[复制]【英文标题】:HowtomakeaBashFunctionwithparameters?[duplicate]【发布时间】:2020-06-0807:13:49【问题描述】:我正在尝试在.bash_profile中编写一个bash函数,其参数将在我的sql上运行脚本并对其进行测试,... 查看详情

如何从调用 bash 的 Tcl 脚本验证密码?

】如何从调用bash的Tcl脚本验证密码?【英文标题】:HowtoauthenticatepasskeyfromaTclscriptcallingbash?【发布时间】:2011-03-0206:11:23【问题描述】:我有一个tcl脚本,它从bash调用很多函数,包括ssh。我正在努力的部分如下所示:procconnectwhe... 查看详情

bash脚本之函数简单介绍应用及函数的简单递归调用

...来的代码块通常称其为模块,也叫函数; 注意: 1.想要使用函数,必须 查看详情

如何使用 crontab 运行运行 Python 脚本的 Bash 脚本

】如何使用crontab运行运行Python脚本的Bash脚本【英文标题】:HowtorunaBashscriptthatrunsPythonscriptsusingcrontab【发布时间】:2022-01-0505:00:44【问题描述】:我有一个Bash脚本,其中调用了两个Python脚本。在使用crontab时,Bash脚本运行得很好... 查看详情

如何在 bash shell 脚本中包含文件

】如何在bashshell脚本中包含文件【英文标题】:Howtoincludefileinabashshellscript【发布时间】:2012-06-0502:55:46【问题描述】:有没有办法在shell脚本中包含另一个shell脚本以便能够访问其功能?就像在PHP中一样,您可以将include指令与其... 查看详情

拦截 bash 脚本函数/系统调用并将它们包装到自定义函数中

】拦截bash脚本函数/系统调用并将它们包装到自定义函数中【英文标题】:Interceptbashscriptfunctions/systemcallsandwrapthemintocustomfunction【发布时间】:2016-03-0313:52:48【问题描述】:有一堆bash脚本,从中触发python、bash、sqlplus、php脚本,... 查看详情

bash脚本编程(代码片段)

 函数函数需要在使用之前定义;同时,函数支持以文件的形式进行模块化封装,其他文件的调用范式如下:sourcebase_func.shmyFunc#模块函数调用无参函数常见的Bash函数,有两种书写方式functionmyfuncecho"abc"functionmyfunc2()echo"ABC"注意... 查看详情

如何在 bash shell 脚本中的 perl 命令调用中使用 shell 变量?

】如何在bashshell脚本中的perl命令调用中使用shell变量?【英文标题】:Howtouseshellvariablesinperlcommandcallinabashshellscript?【发布时间】:2012-10-1702:52:04【问题描述】:如何在bashshell脚本的perl命令调用中使用shell变量?我的shell脚本中有... 查看详情

如何从 haskell 程序调用 bash 或 shell 脚本?

】如何从haskell程序调用bash或shell脚本?【英文标题】:Howtoinvokebashorshellscriptsfromahaskellprogram?【发布时间】:2012-05-1904:18:59【问题描述】:我正在用我在gitbash中运行的haskell编写一些shell脚本,但是我希望能够从这些脚本中使用其... 查看详情

如何避免从 Bash 脚本中多次调用 Python 解释器?

】如何避免从Bash脚本中多次调用Python解释器?【英文标题】:HowcanIavoidcallingPythoninterpretermanytimesfromaBashscript?【发布时间】:2017-03-0904:15:56【问题描述】:我正在处理一个涉及两个主要组件的项目,一个带有Bash命令行界面,另一... 查看详情

如何避免从 Bash 脚本中多次调用 Python 解释器?

】如何避免从Bash脚本中多次调用Python解释器?【英文标题】:HowcanIavoidcallingPythoninterpretermanytimesfromaBashscript?【发布时间】:2017-03-0904:15:56【问题描述】:我正在处理一个涉及两个主要组件的项目,一个带有Bash命令行界面,另一... 查看详情

在 CloudFormation 中使用 Sub 函数会妨碍 bash 脚本的使用吗?

】在CloudFormation中使用Sub函数会妨碍bash脚本的使用吗?【英文标题】:DoesusingtheSubfunctioninCloudFormationhindertheuseofbashscripts?【发布时间】:2021-11-1118:01:47【问题描述】:我在AutoScaling组的CloudFormationLaunchTemplate中有以下UserData。前两... 查看详情

使用 bash 脚本时使用文件名参数调用 Python 脚本

】使用bash脚本时使用文件名参数调用Python脚本【英文标题】:CallPythonscriptwithfilenameargumentwhenusingbashscript【发布时间】:2021-04-0318:06:38【问题描述】:我正在尝试通过调用我的Python脚本的BashShell脚本(csv)运行我的Python脚本(csv_builde... 查看详情

如何从 Mac 上的 bash 脚本调用 ./snowsql 文件?

】如何从Mac上的bash脚本调用./snowsql文件?【英文标题】:Howtocall./snowsqlfilefromabashscriptonMac?【发布时间】:2019-12-1821:48:16【问题描述】:我正在尝试从bash脚本建立连接,完成类似于以下的操作:rmcguigan$snowsql--filenametest.sql*SnowSQL*v... 查看详情

bash脚本之函数定义和调用

...现并且没有任何改变的代码,封装起来,在适当的场景中调用执行。程序员将这种被封装起来的代码称为功能体,或者叫模块,也称为函数。这样看来是不是和循环类似,循环也是为了方便去多次执行一堆代码,而函数是将一堆... 查看详情

如何调试 Bash 脚本? [关闭]

】如何调试Bash脚本?[关闭]【英文标题】:HowcanIdebugaBashscript?[closed]【发布时间】:2010-10-3109:10:21【问题描述】:有没有办法调试Bash脚本?例如,打印某种执行日志的内容,例如“调用第1行”、“调用第2行”等。【问题讨论】... 查看详情

Bash中的多线程[重复]

...想在我的shell脚本中引入多线程功能。我有一个脚本,它使用不同的参数调用函数read_cfg()。这些函数调用中的每一个都是独立的。是否可以并行实例化这些函数调用(不是脚本)。请让我怎样才能做到这一点..?【问题讨论】:... 查看详情