Ubuntu bash 小脚本帮助

Ubuntu bash 小脚本帮助

我正在尝试运行以下 bash 脚本,但它没有在终端窗口上显示任何内容,也没有出现任何错误。当我通过命令行运行它时,我尝试使用内置函数将 currentid 值显示为终端屏幕上的输出。

#! /bin/bash

currentid()
{
return 608

echo builtin currentid "$@"

}

currentid

答案1

我假设您正在尝试获取pid脚本并在稍后将其用作变量?如果是这样,以下是一些提示:

  1. 据我所知,您不需要该builtin命令,因为currentid这不是。您可以像这样看到它的作用:builtinbuiltin

    $ help builtin
    builtin: builtin [shell-builtin [arg ...]]
    Execute shell builtins.
    
    Execute SHELL-BUILTIN with arguments ARGs without performing command
    lookup.  This is useful when you wish to reimplement a shell builtin
    as a shell function, but need to execute the builtin within the function.
    
    Exit Status:
    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is
    not a shell builtin..
    

    您可以使用 找到所有内置命令的列表compgen -b

  2. 我在这里大胆猜测一下,currentid你正在尝试获取pid脚本的进程 ID。如果currentid指的是其他内容,请纠正我。

    要获取脚本的当前值pid,可以使用$$$BASHPID。您可以在Bash 参考手册。我不确定您为什么要硬编码返回 608,但如果您想将pid脚本的更改为那样,请澄清您的问题。

    考虑到这一点,您的脚本将如下所示:

    #!/bin/bash
    printf "%s" "$$"
    

    这会pid安全地打印您的当前值。但请记住,您可以稍后在脚本中调用$$或来执行任何您想要的操作。$BASHPID

还有一些一般建议:

祝你好运!

相关内容