android build/envsetup.sh addcompletions() "local T dir f"是什么意思?

标签 android bash build

我正在跟踪 Android 构建系统,发现了一些有趣的东西。

“local T dir f”是什么意思?

function addcompletions()
{                                                                                                                                             
    local T dir f

    # Keep us from trying to run in something that isn't bash.
    if [ -z "${BASH_VERSION}" ]; then 
        return
    fi   

    # Keep us from trying to run in bash that's too old.
    if [ ${BASH_VERSINFO[0]} -lt 3 ]; then 
        return
    fi   

    dir="sdk/bash_completion"
    if [ -d ${dir} ]; then 
        for f in `/bin/ls ${dir}/[a-z]*.bash 2> /dev/null`; do
            echo "including $f"
            . $f
        done 
    fi   
}

最佳答案

本地 T 目录 f

在 bash 手册中:

* '本地' 本地 [选项] 名称[=值] ... 对于每个参数,都会创建一个名为 NAME 的局部变量,并且 分配的值。 OPTION 可以是任何接受的选项 '宣布'。 'local' 只能在函数内使用;它使 变量 NAME 的可见范围仅限于该函数 和它的 child 。除非使用“本地”,否则返回状态为零 在函数外,提供了一个无效的 NAME,或者 NAME 是一个 只读变量。

* '声明' 声明 [-aAfFilrtux] [-p] [NAME[=VALUE] ...]

如您所见,声明没有选项“T”。同时,在android的build/envsetup.sh中,“T”是这样使用的:T=$(gettop),意思是android源码目录的顶层目录。

所以,我认为这只是一个错误。它应该是“local dir f”

关于android build/envsetup.sh addcompletions() "local T dir f"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16142495/

相关文章:

java - 安卓 fragment 问题

javascript - Ionic 3 - 下载文件到目录

Android对话框 Activity 在外部触摸时删除边距并完成

linux - 在 linux 中使用 bash 查找文件夹中的所有音频文件

java - 我们可以在另一个项目中添加一个可执行的 jar 文件作为依赖项吗?

java - 在 Android 中更改 TextView 的值

linux - Bash,使用导出并在单个脚本中运行导出

python - 安装 iPython 时遇到问题

android - Cordova 无法构建项目

visual-studio-2010 - 每个构建配置包含不同的文件