Linux脚本如何获取命令自身

fiy 其他 72

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    要获取Linux脚本的命令自身,可以使用特殊变量$0。这个特殊变量代表了当前脚本的文件名。通过引用$0,可以获取到脚本文件的绝对路径或相对路径。

    如果想要获取脚本文件的绝对路径,可以使用readlink命令。readlink命令可以解析符号链接,并将链接的绝对路径打印出来。下面是一个示例:

    “`shell
    #!/bin/bash

    SCRIPT=$(readlink -f “$0”)
    echo “脚本的绝对路径是:$SCRIPT”
    “`

    在上面的示例中,readlink命令的-f选项表示解析出符号链接指向的真实路径。”$0″代表当前脚本的文件名。通过将readlink的输出赋给一个变量,就可以获取到脚本的绝对路径。

    如果只是想要获取脚本文件的相对路径,可以使用pwd命令。pwd命令用于获取当前工作目录的路径。下面是一个示例:

    “`shell
    #!/bin/bash

    DIR=$(cd “$(dirname “$0″)” && pwd)
    echo “脚本的相对路径是:$DIR”
    “`

    在上面的示例中,$(dirname “$0”)用于获取当前脚本的目录名,cd命令用于切换到脚本所在的目录,然后pwd命令用于获取当前目录的路径。将pwd命令的输出赋给一个变量,就可以获取到脚本的相对路径。

    通过上述方法,可以方便地获取到Linux脚本的命令自身。根据实际需求,选择合适的方法来获取脚本的绝对路径或相对路径。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux脚本中,可以通过使用特殊变量来获取当前脚本的名称和路径,以及获取正在执行的命令的名称。

    1. 获取当前脚本的名称:
    在Linux脚本中,可以使用`$0`特殊变量来获取当前脚本的名称。`$0`表示当前脚本的文件名(包含路径)。下面是一个使用`$0`获取脚本名称的示例:

    “`bash
    #!/bin/bash

    echo “当前脚本的名称是:$0”
    “`

    2. 获取当前脚本的路径:
    通过使用`$(dirname $0)`可以获取当前脚本的路径。`$(dirname $0)`会将`$0`的值作为参数传递给`dirname`命令,并返回当前脚本所在的目录路径。下面是一个使用`$(dirname $0)`获取脚本路径的示例:

    “`bash
    #!/bin/bash

    echo “当前脚本的路径是:$(dirname $0)”
    “`

    3. 获取正在执行的命令的名称:
    在Linux脚本中,可以使用`$BASH_COMMAND`特殊变量来获取当前正在执行的命令的名称。`$BASH_COMMAND`表示当前正在执行的命令的名称(不包含参数)。下面是一个使用`$BASH_COMMAND`获取正在执行的命令名称的示例:

    “`bash
    #!/bin/bash

    echo “正在执行的命令的名称是:$BASH_COMMAND”
    “`

    4. 获取脚本的绝对路径:
    有时候需要获取当前脚本的绝对路径,可以使用`$(cd $(dirname $0) && pwd)`来获取脚本的绝对路径。`$(cd $(dirname $0) && pwd)`会先进入当前脚本所在的目录,然后使用`pwd`命令获取当前的工作目录路径。下面是一个使用`$(cd $(dirname $0) && pwd)`获取脚本绝对路径的示例:

    “`bash
    #!/bin/bash

    echo “当前脚本的绝对路径是:$(cd $(dirname $0) && pwd)”
    “`

    5. 获取参数的个数和值:
    在Linux脚本中,可以通过使用`$#`特殊变量获取传递给脚本的参数个数,通过使用`$1`、`$2`、`$3`等特殊变量来获取传递给脚本的参数值。`$1`表示第一个参数,`$2`表示第二个参数,以此类推。下面是一个使用`$#`和`$1`获取参数个数和值的示例:

    “`bash
    #!/bin/bash

    echo “参数个数:$#”
    echo “第一个参数:$1”
    “`

    通过使用上述方法,可以在Linux脚本中获取命令自身的名称、路径以及正在执行的命令的名称,并处理传递给脚本的参数。这些特殊变量在脚本编写中非常有用,可以实现更加灵活和自动化的脚本功能。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Linux脚本(Shell脚本)可以通过一些方法来获取自身的命令。下面将介绍一些常用的方法和操作步骤。

    1. 使用$0变量:
    在Shell脚本中,$0变量代表脚本自身的名称。可以在脚本中直接使用$0来获取脚本的名称。

    “`shell
    #!/bin/bash

    echo “当前脚本名称:$0”
    “`

    执行以上脚本,将会输出当前脚本的名称。

    2. 使用basename命令和$0变量:
    除了直接使用$0变量,还可以使用basename命令结合$0变量来获取脚本的名称。basename命令用于从路径中获取最后的文件名。

    “`shell
    #!/bin/bash

    script_name=$(basename “$0”)

    echo “当前脚本名称:$script_name”
    “`

    执行以上脚本,将会输出当前脚本的名称。

    3. 使用readlink命令和/proc/$$/exe路径:
    通过/proc/$$/exe路径可以获取当前执行脚本的绝对路径,可以使用readlink命令获取该路径。

    “`shell
    #!/bin/bash

    script_path=$(readlink /proc/$$/exe)
    script_name=$(basename “$script_path”)

    echo “当前脚本绝对路径:$script_path”
    echo “当前脚本名称:$script_name”
    “`

    执行以上脚本,将会输出当前脚本的绝对路径和名称。

    4. 使用dirname命令和/proc/$$/exe路径:
    除了获取脚本的名称,有时也需要获取脚本所在的目录。可以通过dirname命令结合/proc/$$/exe路径来获取脚本所在的目录。

    “`shell
    #!/bin/bash

    script_path=$(readlink /proc/$$/exe)
    script_dir=$(dirname “$script_path”)
    script_name=$(basename “$script_path”)

    echo “当前脚本所在目录:$script_dir”
    echo “当前脚本名称:$script_name”
    “`

    执行以上脚本,将会输出当前脚本所在的目录和名称。

    总结:
    以上介绍了四种常用的方式来获取Linux脚本自身的命令和路径。根据需要选择相应的方法来使用。使用这些方法可以方便地获取脚本的名称、路径、所在目录等信息,对于日志记录、动态文件路径等场景非常有用。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部