精华内容
下载资源
问答
  • jenkins变量获取-项目名称
    千次阅读
    2019-01-09 13:46:42

    在Jenkins创建的每个项目的名称都可以通过环境变量$JOB_NAME获得

    有什么用呢?比如在shell中编写脚本,可以用到:


    cd /var/lib/jenkins/jobs/$JOB_NAME/workspace/code
    ./pid_daily.lsp /var/lib/jenkins/jobs/$JOB_NAME/workspace/code /user/jenkins/bigdata/daily
    不直接写项目名称是防止更名,比如这次我改了项目名称后,导致路径变了,无法获得争取的路径。用环境变量$JOB_NAME最方便。

    其他环境变量参考文档:

    https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project
     

    更多相关内容
  • GitLab CI/CD Variables 中文文档

    万次阅读 2019-06-27 18:29:00
    官方文档链接(这篇文章也算是翻译自官网文档): GitLab CI/CD environment variables 当GitLab CI 接受到一个job后,Runner就开始准备构建环境。开始设置预定义的变量(环境变量)和用户自定义的变量。 variables...

    官方文档链接(这篇文章也算是翻译自官网文档):

    GitLab CI/CD environment variables

    当GitLab CI 中接受到一个job后,Runner就开始准备构建环境。开始设置预定义的变量(环境变量)和用户自定义的变量。

    variables 的执行顺序

    变量可以被重写,并且是按照下面的顺序进行执行:

    1. Trigger variables(优先级最高)
    2. Secret variables
    3. YAML-defined job-level variables
    4. YAML-defined global variables
    5. Deployment variables
    6. Predefined variables (优先级最低)

    举个例子,如果你定义了私有变量API_TOKEN=secure,并且在.gitlab-ci.yml中定义了 API_TOKEN=yaml,那么私有变量API_TOKEN的值将是secure,因为secret variables的优先级较高。

    Predefined variables(Environment variables)

    有部分预定义的环境变量仅仅只能在最小版本的GitLab Runner中使用。请参考下表查看对应的Runner版本要求。

    注意:从GitLab 9.0 开始,部分变量已经不提倡使用。请查看9.0 Renaming部分来查找他们的替代变量。强烈建议使用新的变量,我们也会在将来的GitLab版本中将他们移除。

    VariableGitLabRunnerDescription
    CIall0.4标识该job是在CI环境中执行
    CI_COMMIT_REF_NAME9.0all用于构建项目的分支或tag名称
    CI_COMMIT_REF_SLUG9.0all先将$CI_COMMIT_REF_NAME的值转换成小写,最大不能超过63个字节,然后把除了0-9a-z的其他字符转换成-。在URLs和域名名称中使用。
    CI_COMMIT_SHA9.0allcommit的版本号
    CI_COMMIT_TAG9.00.5commit的tag名称。只有创建了tags才会出现。
    CI_DEBUG_TRACE9.01.7debug tracing开启时才生效
    CI_ENVIRONMENT_NAME8.15alljob的环境名称
    CI_ENVIRONMENT_SLUG8.15all环境名称的简化版本,适用于DNS,URLs,Kubernetes labels等
    CI_JOB_ID9.0allGItLab CI内部调用job的一个唯一ID
    CI_JOB_MANUAL8.12all表示job启用的标识
    CI_JOB_NAME9.00.5.gitlab-ci.yml中定义的job的名称
    CI_JOB_STAGE9.00.5.gitlab-ci.yml中定义的stage的名称
    CI_JOB_TOKEN9.01.2用于同GitLab容器仓库验证的token
    CI_REPOSITORY_URL9.0allgit仓库地址,用于克隆
    CI_RUNNER_DESCRIPTION8.100.5GitLab中存储的Runner描述
    CI_RUNNER_ID8.100.5Runner所使用的唯一ID
    CI_RUNNER_TAGS8.100.5Runner定义的tags
    CI_PIPELINE_ID8.100.5GitLab CI 在内部使用的当前pipeline的唯一ID
    CI_PIPELINE_TRIGGEREDallall用于指示该job被触发的标识
    CI_PROJECT_DIRallall仓库克隆的完整地址和job允许的完整地址
    CI_PROJECT_IDallallGitLab CI在内部使用的当前项目的唯一ID
    CI_PROJECT_NAME8.100.5当前正在构建的项目名称(事实上是项目文件夹名称)
    CI_PROJECT_NAMESPACE8.100.5当前正在构建的项目命名空间(用户名或者是组名称)
    CI_PROJECT_PATH8.100.5命名空间加项目名称
    CI_PROJECT_PATH_SLUG9.3all$CI_PROJECT_PATH小写字母、除了0-9a-z的其他字母都替换成-。用于地址和域名名称。
    CI_PROJECT_URL8.100.5项目的访问地址(http形式)
    CI_REGISTRY8.100.5如果启用了Container Registry,则返回GitLab的Container Registry的地址
    CI_REGISTRY_IMAGE8.100.5如果为项目启用了Container Registry,它将返回与特定项目相关联的注册表的地址
    CI_REGISTRY_PASSWORD9.0all用于push containers到GitLab的Container Registry的密码
    CI_REGISTRY_USER9.0all用于push containers到GItLab的Container Registry的用户名
    CI_SERVERallall标记该job是在CI环境中执行
    CI_SERVER_NAMEallall用于协调job的CI服务器名称
    CI_SERVER_REVISIONallall用于调度job的GitLab修订版
    CI_SERVER_VERSIONallall用于调度job的GItLab版本
    ARTIFACT_DOWNLOAD_ATTEMPTS8.151.9尝试运行下载artifacts的job的次数
    GET_SOURCES_ATTEMPTS8.151.9尝试运行获取源的job次数
    GITLAB_CIallall用于指示该job是在GItLab CI环境中运行
    GITLAB_USER_ID8.12all开启该job的用户ID
    GITLAB_USER_EMAIL8.12all开启该job的用户邮箱
    RESTORE_CACHE_ATTEMPTS8.151.9尝试运行存储缓存的job的次数

    9.0 Renaming

    根据GitLab的命名规则,在9.0以后将从build术语转到jobCI变量中,并且已经被重命名。

    8.x name9.0+ name
    CI_BUILD_IDCI_JOB_ID
    CI_BUILD_REFCI_COMMIT_SHA
    CI_BUILD_TAGCI_COMMIT_TAG
    CI_BUILD_REF_NAMECI_COMMIT_REF_NAME
    CI_BUILD_REF_SLUGCI_COMMIT_REF_SLUG
    CI_BUILD_NAMECI_JOB_NAME
    CI_BUILD_STAGECI_JOB_STAGE
    CI_BUILD_REPOCI_REPOSITORY_URL
    CI_BUILD_TRIGGEREDCI_PIPELINE_TRIGGERED
    CI_BUILD_MANUALCI_JOB_MANUAL
    CI_BUILD_TOKENCI_JOB_TOKEN

    .gitlab-ci.yaml defined variables

    注意:此功能要求GitLab Runner 0.5或者更高版本,并且GitLab CI 7.14或者更高版本

    GitLab CI允许你向.gitlab-ci.yml中添加变量,这个变量在构建环境中设置。因此,变量将保存在存储中,他们用于存储非敏感的项目配置,例如:RAILS_ENV或者DATABASE_URL

    举个例子,如果将变量设置为全局以下(不是在一个作业中),则它将用于所有执行的命令脚本中:

     

    1

    2

    variables:

      DATABASE_URL: "postgres://postgres@postgres/my_database"

    YAML中定义的变量也将应用到所有创建的服务容器中,因此可以对它进行微调。

    变量可以定义为全局,同时也可以定义为job级别。若要关闭作业中的全局定义变量,请定义一个空hash:

     

    1

    2

    job_name:

      variables: {}

    您可以在变量定义中使用其他变量(或使用$$将其转义):

     

    1

    2

    3

    4

    5

    variables:

      LS_CMD: 'ls $FLAGS $$TMP_DIR'

      FLAGS: '-al'

    script:

      - 'eval $LS_CMD'  # will execute 'ls -al $TMP_DIR'

     

    Secret variables

    注意:

    • 这个功能需要GitLab Runner 0.4.0或者更高版本。
    • 请注意,私有变量不会隐藏,如果明确要这么做,他们的值可以显示在job日志中。如果您的项目是公共的或内部的,你可以在项目的pipeline中设置pipeline为私有的。关于私有变量的讨论在issue *&####&*_16_*&####&*。

    GitLab CI允许你在构建环境过程中设置项目的私有变量。私有变量存储在仓库(.gitlab-ci.yml)中,并被安全的传递给GitLab Runner,使其在构建环境中可用。建议使用该方法存储诸如密码、秘钥和凭据之类的东西。

    可用通过Settings ➔ Pipelines来增加私有变量,通过Settings ➔ Pipelines找到的模块称之为私有变量。

    一次设置,所有的后续pipeline是都可以使用它们。

    Protected secret variables

    注意:此功能要求GitLab 9.3或者更高。

    私有变量可以被保护。每当一个私有变量被保护时,它只会安全的传递到在受保护的分支受保护的标签上运行的pipeline。其他的pipeline将不会得到受保护的变量。

    可用通过Settings ➔ Pipelines来增加私有变量,通过Settings ➔ Pipelines找到的模块称之为私有变量,然后点击Protected

    一次设置,所有的后续pipeline是都可以使用它们。

    Deploment variables

    注意:此功能要求GitLab CI 8.15或者更高版本。

    负责部署配置的项目服务可以定义在构建环境中设置自己的变量。这些变量只定义用于部署job。请参考您正在使用的项目服务的文档,以了解他们定义的变量。

    一个定义有部署变量的项目服务示例Kubernetes Service

    Debug tracing

    GitLab Runner 1.7开始引入。

    警告:启用调试跟踪可能会严重的安全隐患。输出内容将包含所有的私有变量和其他的隐私!输出的内容将被上传到GitLab服务器并且将会在job记录中明显体现。

    默认情况下,GitLab Runner会隐藏了处理job时正在做的大部分细节。这种行为使job跟踪很短,并且防止秘密泄露到跟踪中,除非您的脚本将他们输出到屏幕中。

    如果job没有按照预期的运行,这也会让问题查找变得更加困难;在这种情况下,你可以在.gitlab-ci.yml中开启调试记录。它需要GitLab Runner v1.7版本以上,此功能可启用shell的执行记录,从而产生详细的job记录,列出所有执行的命令,设置变量等。

    在启用此功能之前,您应该确保job只对团队成员可见。您也应该https://docs.gitlab.com/ce/ci/pipelines.html#seeing-build-status所有生成的job记录,然后使其可见。

    设置CI_DEBUG_TRACE变量的值为true来开启调试记录。

     

    1

    2

    3

    job_name:

      variables:

        CI_DEBUG_TRACE: "true"

    调试记录设置为TRUE的截断输出示例:

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    98

    99

    100

    101

    102

    103

    104

    105

    106

    107

    108

    109

    110

    111

    112

    ...

     

    export CI_SERVER_TLS_CA_FILE="/builds/gitlab-examples/ci-debug-trace.tmp/CI_SERVER_TLS_CA_FILE"

    if [[ -d "/builds/gitlab-examples/ci-debug-trace/.git" ]]; then

      echo $'\''\x1b[32;1mFetching changes...\x1b[0;m'\''

      $'\''cd'\'' "/builds/gitlab-examples/ci-debug-trace"

      $'\''git'\'' "config" "fetch.recurseSubmodules" "false"

      $'\''rm'\'' "-f" ".git/index.lock"

      $'\''git'\'' "clean" "-ffdx"

      $'\''git'\'' "reset" "--hard"

      $'\''git'\'' "remote" "set-url" "origin" "https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@example.com/gitlab-examples/ci-debug-trace.git"

      $'\''git'\'' "fetch" "origin" "--prune" "+refs/heads/*:refs/remotes/origin/*" "+refs/tags/*:refs/tags/*"

    else

      $'\''mkdir'\'' "-p" "/builds/gitlab-examples/ci-debug-trace.tmp/git-template"

      $'\''rm'\'' "-r" "-f" "/builds/gitlab-examples/ci-debug-trace"

      $'\''git'\'' "config" "-f" "/builds/gitlab-examples/ci-debug-trace.tmp/git-template/config" "fetch.recurseSubmodules" "false"

      echo $'\''\x1b[32;1mCloning repository...\x1b[0;m'\''

      $'\''git'\'' "clone" "--no-checkout" "https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@example.com/gitlab-examples/ci-debug-trace.git" "/builds/gitlab-examples/ci-debug-trace" "--template" "/builds/gitlab-examples/ci-debug-trace.tmp/git-template"

      $'\''cd'\'' "/builds/gitlab-examples/ci-debug-trace"

    fi

    echo $'\''\x1b[32;1mChecking out dd648b2e as master...\x1b[0;m'\''

    $'\''git'\'' "checkout" "-f" "-q" "dd648b2e48ce6518303b0bb580b2ee32fadaf045"

    '

    +++ hostname

    ++ echo 'Running on runner-8a2f473d-project-1796893-concurrent-0 via runner-8a2f473d-machine-1480971377-317a7d0f-digital-ocean-4gb...'

    Running on runner-8a2f473d-project-1796893-concurrent-0 via runner-8a2f473d-machine-1480971377-317a7d0f-digital-ocean-4gb...

    ++ export CI=true

    ++ CI=true

    ++ export CI_DEBUG_TRACE=false

    ++ CI_DEBUG_TRACE=false

    ++ export CI_COMMIT_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045

    ++ CI_COMMIT_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045

    ++ export CI_COMMIT_BEFORE_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045

    ++ CI_COMMIT_BEFORE_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045

    ++ export CI_COMMIT_REF_NAME=master

    ++ CI_COMMIT_REF_NAME=master

    ++ export CI_JOB_ID=7046507

    ++ CI_JOB_ID=7046507

    ++ export CI_REPOSITORY_URL=https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@example.com/gitlab-examples/ci-debug-trace.git

    ++ CI_REPOSITORY_URL=https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@example.com/gitlab-examples/ci-debug-trace.git

    ++ export CI_JOB_TOKEN=xxxxxxxxxxxxxxxxxxxx

    ++ CI_JOB_TOKEN=xxxxxxxxxxxxxxxxxxxx

    ++ export CI_PROJECT_ID=1796893

    ++ CI_PROJECT_ID=1796893

    ++ export CI_PROJECT_DIR=/builds/gitlab-examples/ci-debug-trace

    ++ CI_PROJECT_DIR=/builds/gitlab-examples/ci-debug-trace

    ++ export CI_SERVER=yes

    ++ CI_SERVER=yes

    ++ export 'CI_SERVER_NAME=GitLab CI'

    ++ CI_SERVER_NAME='GitLab CI'

    ++ export CI_SERVER_VERSION=

    ++ CI_SERVER_VERSION=

    ++ export CI_SERVER_REVISION=

    ++ CI_SERVER_REVISION=

    ++ export GITLAB_CI=true

    ++ GITLAB_CI=true

    ++ export CI=true

    ++ CI=true

    ++ export GITLAB_CI=true

    ++ GITLAB_CI=true

    ++ export CI_JOB_ID=7046507

    ++ CI_JOB_ID=7046507

    ++ export CI_JOB_TOKEN=xxxxxxxxxxxxxxxxxxxx

    ++ CI_JOB_TOKEN=xxxxxxxxxxxxxxxxxxxx

    ++ export CI_COMMIT_REF=dd648b2e48ce6518303b0bb580b2ee32fadaf045

    ++ CI_COMMIT_REF=dd648b2e48ce6518303b0bb580b2ee32fadaf045

    ++ export CI_COMMIT_BEFORE_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045

    ++ CI_COMMIT_BEFORE_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045

    ++ export CI_COMMIT_REF_NAME=master

    ++ CI_COMMIT_REF_NAME=master

    ++ export CI_COMMIT_NAME=debug_trace

    ++ CI_JOB_NAME=debug_trace

    ++ export CI_JOB_STAGE=test

    ++ CI_JOB_STAGE=test

    ++ export CI_SERVER_NAME=GitLab

    ++ CI_SERVER_NAME=GitLab

    ++ export CI_SERVER_VERSION=8.14.3-ee

    ++ CI_SERVER_VERSION=8.14.3-ee

    ++ export CI_SERVER_REVISION=82823

    ++ CI_SERVER_REVISION=82823

    ++ export CI_PROJECT_ID=17893

    ++ CI_PROJECT_ID=17893

    ++ export CI_PROJECT_NAME=ci-debug-trace

    ++ CI_PROJECT_NAME=ci-debug-trace

    ++ export CI_PROJECT_PATH=gitlab-examples/ci-debug-trace

    ++ CI_PROJECT_PATH=gitlab-examples/ci-debug-trace

    ++ export CI_PROJECT_NAMESPACE=gitlab-examples

    ++ CI_PROJECT_NAMESPACE=gitlab-examples

    ++ export CI_PROJECT_URL=https://example.com/gitlab-examples/ci-debug-trace

    ++ CI_PROJECT_URL=https://example.com/gitlab-examples/ci-debug-trace

    ++ export CI_PIPELINE_ID=52666

    ++ CI_PIPELINE_ID=52666

    ++ export CI_RUNNER_ID=1337

    ++ CI_RUNNER_ID=1337

    ++ export CI_RUNNER_DESCRIPTION=shared-runners-manager-1.example.com

    ++ CI_RUNNER_DESCRIPTION=shared-runners-manager-1.example.com

    ++ export 'CI_RUNNER_TAGS=shared, docker, linux, ruby, mysql, postgres, mongo'

    ++ CI_RUNNER_TAGS='shared, docker, linux, ruby, mysql, postgres, mongo'

    ++ export CI_REGISTRY=registry.example.com

    ++ CI_REGISTRY=registry.example.com

    ++ export CI_DEBUG_TRACE=true

    ++ CI_DEBUG_TRACE=true

    ++ export GITLAB_USER_ID=42

    ++ GITLAB_USER_ID=42

    ++ export GITLAB_USER_EMAIL=user@example.com

    ++ GITLAB_USER_EMAIL=user@example.com

    ++ export VERY_SECURE_VARIABLE=imaverysecurevariable

    ++ VERY_SECURE_VARIABLE=imaverysecurevariable

    ++ mkdir -p /builds/gitlab-examples/ci-debug-trace.tmp

    ++ echo -n '-----BEGIN CERTIFICATE-----

    MIIFQzCCBCugAwIBAgIRAL/ElDjuf15xwja1ZnCocWAwDQYJKoZIhvcNAQELBQAw'

    ...

     

    Using the CI variables in your job scripts

    在构建环境变量时,所有的变量都被设置为环境变量,他们可以使用普通方法访问这些变量。在大多数情况下,用于执行job脚本都是通过bash或者是sh。

    想要访问环境变量,请示使用一下Runner对应的语法:

    Shell用法
    bash/sh$variable
    windows batch%variable%
    PowerShell$env:variable

    在bash中访问环境变量,需要给变量名称加上前缀($):

     

    1

    2

    3

    job_name:

      script:

        - echo $CI_JOB_ID

    在Windows系统的PowerShell中访问环境变量,需要给变量名称加上前缀($env:):

     

    1

    2

    3

    job_name:

      script:

        - echo $env:CI_JOB_ID

    您可以使用export命令来列出所有的环境变量。在使用此命令时要注意,此命令也会在job记录中列出所有私有变量的值:

     

    1

    2

    3

    job_name:

      script:

        - export

    实例的值:

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    export CI_JOB_ID="50"

    export CI_COMMIT_SHA="1ecfd275763eff1d6b4844ea3168962458c9f27a"

    export CI_COMMIT_REF_NAME="master"

    export CI_REPOSITORY_URL="https://gitlab-ci-token:abcde-1234ABCD5678ef@example.com/gitlab-org/gitlab-ce.git"

    export CI_COMMIT_TAG="1.0.0"

    export CI_JOB_NAME="spec:other"

    export CI_JOB_STAGE="test"

    export CI_JOB_MANUAL="true"

    export CI_JOB_TRIGGERED="true"

    export CI_JOB_TOKEN="abcde-1234ABCD5678ef"

    export CI_PIPELINE_ID="1000"

    export CI_PROJECT_ID="34"

    export CI_PROJECT_DIR="/builds/gitlab-org/gitlab-ce"

    export CI_PROJECT_NAME="gitlab-ce"

    export CI_PROJECT_NAMESPACE="gitlab-org"

    export CI_PROJECT_PATH="gitlab-org/gitlab-ce"

    export CI_PROJECT_URL="https://example.com/gitlab-org/gitlab-ce"

    export CI_REGISTRY="registry.example.com"

    export CI_REGISTRY_IMAGE="registry.example.com/gitlab-org/gitlab-ce"

    export CI_RUNNER_ID="10"

    export CI_RUNNER_DESCRIPTION="my runner"

    export CI_RUNNER_TAGS="docker, linux"

    export CI_SERVER="yes"

    export CI_SERVER_NAME="GitLab"

    export CI_SERVER_REVISION="70606bf"

    export CI_SERVER_VERSION="8.9.0"

    export GITLAB_USER_ID="42"

    export GITLAB_USER_EMAIL="user@example.com"

    export CI_REGISTRY_USER="gitlab-ci-token"

    export CI_REGISTRY_PASSWORD="longalfanumstring"

    展开全文
  • Windows的环境变量一览

    万次阅读 多人点赞 2017-01-04 00:07:03
    Windows的环境变量

    环境变量是操作系统中一组具有名称的值,能够影响应用程序的执行效果。环境变量是应用程序的执行环境的组成部分,例如:一个正在运行的程序可以通过"TEMP"这个环境变量来获取操作系统中用来存放临时文件的路径,或者通过"HOME"或者"USERPROFILE"这个变量来获取运行该应用程序的用户的文件目录。

    环境变量最早是在1979Version7 Unix中引入的,后来在LinuxOSXWindows等操作系统中也引入了这个系统特性。

    这里我们就Windows操作系统来讨论。

    Windows操作系统中,可以通过两种方式来查看和修改系统中的环境变量。一种是通过“我的电脑”右键菜单——“属性”——“高级系统设置”——“高级”选项卡——“环境变量”来访问环境变量管理面板:

    【原创】Windows中的环境变量一览 - 远行的风 - 风的驿站

    另一种是在注册表的"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment"子项中可以找到系统中所有的环境变量的键值:

    【原创】Windows中的环境变量一览 - 远行的风 - 风的驿站

    Wiki上还提到可以在AUTOEXEC.BAT中找到环境变量的配置信息,但是AUTOEXEC.BAT文件在DOSWin95/98系统中有效,从Win2000开始,保留这个文件只是为了兼容)

    系统中的环境变量既可以用在脚本中,也可以在命令行中使用。

    例如我们在命令行中输入:echo %temp%可以输出当前系统的临时文件夹的路径,或者在Windows PowerShell中输入Write-Output $HOME输出当前用户HOME路径。

    下面是Windows中常见的环境变量的一些具体的意义:

    %CD%:当前路径(Current Directory),这和在命令行中输入cd得到的结果相同。

    %DATE%:当前日期,日期格式和当前用户的设置有关。

    %ERRORLEVEL%:错误等级,输出的是最后一次出错的错误代码。

    %RANDOM%:随机返回一个0~32767之间的整数。

    %TIME%:当前时间。

    %APPDATA%:当前登录用户的Application Data(应用程序数据)的完整路径。

    %LOCALAPPDATA%:应用程序的临时文件路径,包括例如桌面主题,Windows异常报告,缓存等等。

    %ProgramFiles%program files路径,存放着Windows中安装的应用程序。

    %CommonProgramFiles%:公共文件路径,默认为"C:\Program Files\CommonFiles"

    %SystemDrive%Windows系列系统独有的环境变量,表示系统盘盘符,指出操作系统的安装磁盘(如果在C盘的话,那么值为”C:”)。

    %SystemRoot%Windows系列系统独有的环境变量,表示操作系统的根目录,盘符和%SystemDrive%相同,路径因系统的版本而异,XP及之后的操作系统为"\Windows"

    %windir%Windows文件夹的全路径,在XP及之后的系统中为"C:\Windows"

    %UserDomain%:计算机所在的工作组或者域的名称。

    %LOGONSERVER%:当前登录用户的身份验证服务器主机名。

    %UserProfile%Windows系列系统独有的环境变量,表示当前用户的文档的路径。

    %UserName%:当前登录用户的用户名。

    %PATH%:由一系列的分号分隔的路径组成,用于脚本解析或者命令行在执行命令时,查找匹配的可执行文件或者脚本。路径为绝对路径,对于路径中包含的子路径不会进行递归查找。

    关于PATH环境变量的一点说明:

    Windows中很多程序在安装或者配置过程中(例如JAVA JDK的安装,python的安装等等),都需要配置PATH环境变量,在配置的过程中要注意的是,PATH环境变量的路径中不能包含空格或者非英文字符和标点,不然该路径及该路径后面的所有路径都会失效。例如有一个特别常见的问题,很多朋友在安装完python开发环境,配置完成环境变量后,在cmd中执行python时会提示“"python"不是内部或外部命令,也不是可运行的程序或批处理文件”,这时首先检查下PATH环境变量中添加的路径是否有空格或者非英文字符和标点,如果没问题,可以把在PATH变量值最后添加的路径放到PATH变量值的最前面,这时如果好用了,那么只有一个可能,PATH变量值中存在无效的路径(包含空格或非英文字符和标点),如果还不好用,再检查一下是不是路径写错了吧。

     

    参考资料:

    http://en.wikipedia.org/wiki/Environment_variable

    http://wenku.baidu.com/link?url=Zc1-cmJOWz-OUSrgPld3RrlmnOlP1aWZ4ClBdm3wtrgTT_fBs6E4TCZ4Olft1poqJ0c8VY6vvb-YnUA_LYEBoGP4BV0Px_uin-3qdXliGvu

    http://baike.baidu.com/view/601129.htm?fr=aladdin

    展开全文
  • 对于Python语言变量,我想大家都不陌生,但是在Python变量也有很多种类。如私有变量、共有变量、全局变量、局部变量等。这里给大家介绍Python类(class)变量之间的区别。参考代码: class G(): fly ...

    0 引言

    Python语言中,一切皆对象。对于Python语言中的变量,我想大家都不陌生,但是在Python中,变量也有很多种类。如私有变量、共有变量、全局变量、局部变量等。这里给大家介绍Python类(class)中的变量之间的区别。参考代码:


    class G():
        fly = False #类中的全局变量
        def __init__(self):
            selg._age = 1 #加一个下划线,是一种不成文的规定,意思是该变量是私有变量
            self.long = 2 #普通变量
            self.__width = 3 #有两个下划线,是一种“真”私有变量
        def run(self):
            r = 4 #局部变量
            print("I am running!.")

    1 变量说明

    1.1 私有变量

    私有变量,顾名思义,是一个只能被当前类或者方法或者函数才能访问的变量,其他的类或者方法或者函数是不能直接访问的。这里说不能直接访问,也就是说可以通过间接的方式访问。这里就拿引言中的参考代码进行举例说明。

    从代码中我们可以看到,我们在类中定义了5个变量,当私有、共有,局部、全局都有。但是如果我们对该类进行实例化之后,我们可以查看该类被实例化之后的对象的参数,截图如下:


    从截图中,我们可以看到,对象f能够直接引用类中的全局变量fly,但是在对象f的__dict__对象中并没有存放该全局变量,而在__init__()构造方法中的long变量也是可以被对象f直接引用的,这就是说全局变量是被当做类中的一个属性来存放,在Python中。 


    1.1.1 访问私有变量

    对于上面代码中定义的两个私有变量,其他的类或者方法也不是不可以访问,只是稍微麻烦一些。我们在截图中可以看到,在f的__dict__中,存放了两个私有变量的键值对,但是对于双下划线的私有变量而言,它的名字较之我们定义时的名字还是有所区别。这里有一个命名规则:_classNamevalueName,其中className是定义的类的名称,valueName是我们定义的双下划线的私有变量的名称(其中包括双下划线)。我们可以通过这种方式对其进行访问,实例如下:


                  

    1.2 局部变量

    局部变量,是指该变量的生命周期不会和程序的全部生命周期同步生存或者死亡。也就是说,程序在还没有结束之前,局部变量就会被释放掉,因为它的生命周期结束了。上面的截图中,在类中的run()方法中定义的r变量是一个局部变量,我们根本不可能调用它,因为它在run()方法运行完毕之后,属于它的(局部变量r)那一块内存空间就会被Python解释器给释放掉,所以Python解释器也不会保存r的值。

    1.3 全局变量

    全局变量,是一个相对的概念,对于整个程序而言,有可以在整个程序的任何代码块中都能被访问的变量,被称作全局变量。也有在类中能够被该类的任何代码块都能访问到的变量,也被称作全局变量。所以这里是一个相对的概念。代码定义的fly变量以及构造方法中的long变量都是全局变量,因为在long之前加了一个self的前缀,所有在整个类中,该long变量也是全局变量,至少在该类中的任何地方都可以访问到该变量。全局变量被当做类的一个属性来存储,所以可以说直接通过.的访问方式直接访问,访问如下:


                            

    1.4 公有变量

    公有变量,也就是说该变量能够被该程序文档中任何代码块调用或者其他的程序文档中的任何代码块调用(import导入的模块),概念上与全局变量有些交叉。

    展开全文
  • Python的全局变量

    万次阅读 2020-07-11 08:54:52
    In this tutorial, We will look into Python Global Variables. We will learn how to define a global variable and then how to access them in a ... 我们将学习如何定义全局变量,然后如何在函数访问它们。...
  • Shell语言变量和引用

    千次阅读 2019-06-05 21:33:22
    变量就是程序设计语言的一个可以变化的量,当然,可以变化的是变量的值。变量几乎所有的程序设计语言中都有定义,并且其涵义也大同小异。从本质上讲,变量就是在程序保存用户数据的一块内存空间,而变量名就是...
  • Qt帮助文档使用方法

    千次阅读 2019-10-22 20:22:18
    Qt 帮助文档非常细致而全面,应有尽有,是非常不错的自学教材。因为 Qt 帮助文档太多,所以难以都翻译成中文,即使翻译了一部分,翻译花的时间太多,翻译...在开始菜单找到“Qt 5.9.0-->5.9-->MinGW 5.3....
  • simulink定义全局变量

    千次阅读 2021-04-22 12:34:02
    函数文件的变量是局部变量 , 运行期间有效 , 运行完毕就自动被清除 , 而命令 文件的变量是全局变量 , 执行完毕后仍被保存在内存 (3) 、M 函数文件要定义......(4)命名变量时可以取一个容易...
  • ansible官方文档翻译之变量

    千次阅读 2016-01-26 04:13:41
    ansible官方文档翻译之变量,主要是将官方文档进行翻译,后续会给出相关的练习
  • JavaScript变量 JavaScript使用var关键字声明变量。声明变量的5种常规用法如下: var a; //声明单个变量。var关键字与变量名之间以空格分隔 var b, c; //声明多个变量变量之间以逗号分隔 var d = 1; //声明...
  • cmake常用变量

    千次阅读 2021-12-07 13:55:45
    在这份文档中,对变量进行分类,分为: 提供信息的变量、改变行为的变量、描述系统的变量、控制编译的变量等等。 一、提供信息的变量   提供信息的变量可以提供某种信息,通常只需要读取变量即可,而不需要对变量...
  • 关于creat-react-app的环境变量

    万次阅读 2018-05-16 11:35:46
    使用场景:在使用creat-react-app开发项目,项目接口会分为两种情况一种是开发的测试接口,一种是打包上线后的正式接口。那么怎么判断是开发模式还是线上模式(打包后的项目也就是npm run build)。 如果...
  • GitLab CI / CD具有一组默认的预定义变量,您可以使用它们而无需任何其他说明。您可以呼叫问题编号,用户名,分支名称,管道和提交ID等。 GitLab为Runner的本地环境提供了预定义的环境...在.gitlab-ci.yml文件,..
  • Spring Boot中文文档(官方文档翻译 基于1.5.2.RELEASE)

    万次阅读 多人点赞 2017-04-06 16:41:22
    Spring Boot官方文档中文翻译(更新至 26. 日志)
  • FullCalendar中文文档:API

    千次阅读 2020-04-08 14:58:23
    FullCalendar提供了丰富的属性设置和方法调用,开发者可以根据FullCalendar提供的API快速完成一个日历日程的开发,本文将FullCalendar的常用属性和方法、回调函数等整理成中文文档,以供参阅。当前版本1.6.4。 普通...
  • linux变量赋值及改变、显示

    万次阅读 2017-11-12 02:08:00
    一,SHELL本地变量:本地变量就如同局部变量一样,只在本SHELL起作用。它不会影响到其他SHELL变量。格式:NAME=value1,变量的调用:在变量前加$$ echo $HOME/home/hbwork$ WEEK=Satur$ echo Today is $...
  • UE4 中文文档阅读

    万次阅读 多人点赞 2019-04-29 07:38:18
    首先创建变量 这个变量的默认值是true,因此在下面的图这个变量作为Branch的判断条件 另外:下图是只有第三人称玩家才能开门操作,与重叠事件一起调用 通常情况下,按键操作是不写在Door里的,...
  • JS 基础之全局变量,局部变量

    千次阅读 2018-08-23 09:56:29
    本章将概要介绍一些编写高质量JavaScript的最佳实践、模式和习惯,比如避免全局变量、使用单var声明、预缓存循环的length、遵守编码约定等等。本章还包括一些编程习惯,这些习惯跟具体的代码关系不大,而是更多...
  • 青龙面板jd脚本库环境变量说明

    千次阅读 2022-01-19 16:23:32
    环境变量说明 京东(必须) Name 归属 属性 说明 JD_COOKIE 京东 必须 京东cookie,多个账号的cookie使用&隔开。具体获取参考浏览器获取京东cookie教程 或者 插件获取京东cookie教程 京东隐私安全 环境...
  • Photoshop脚本 > 复制一份当前文档

    千次阅读 2014-11-17 13:52:53
    本节将演示如何使用脚本,复制一份当前文档。首先创建一个空白的脚本文档,并保存在硬盘上某个位置。 首先创建一个空白的脚本文档,并保存在硬盘上某个位置。 接着输入脚本代码: //定义一个变量[document],用来...
  • linux查看、添加、删除环境变量

    万次阅读 2019-07-23 19:47:15
    阅读目录linux查看环境变量linux变量的种类设置变量的三种方法使用unset删除指定的环境变量删除PATH环境变量指定值常用的环境变量其他 linux查看环境变量 1.使用echo命令查看单个环境变量。例如: echo $PATH 2....
  •  找到环境变量中的path变量:  双击path,在其后面增加:;%RABBITMQ_SERVER%\sbin (注意前面的分号),然后确定即可  现在打开windows命令行(“cmd”),输入rabbitmq-service如果出现如下所示提示,即...
  • 超全局变量 在 PHP 4.1.0 引入,是在全部作用域始终可用的内置变量。 PHP 的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法无需执行 global $variable; 就...
  • JavaScript常见变量和函数命名示例

    万次阅读 2020-07-21 15:16:17
    JavaScript作为前端开发从业人员必须掌握的3大基础知识最重要的一环,也是平是接触时间最长、写得最多的。在开发过程必然会遇到命名的问题,你会词穷、纠结、惆怅吗?本文的出现相信能够解决大部分烦恼,让你...
  • 如果没有指定设备编号,则默认将对象存储于current_device()当前设备; 举个例子, 一个 torch.Tensor 对象构造函数的设备字段如果填写 'cuda' ,那等价于填写了 'cuda:X' ,其中X是函数 torch.cuda.current_...
  • 在CentOS7.4安装jdk的几种方法及配置环境变量

    万次阅读 多人点赞 2017-12-08 11:43:38
    CLASSPATH变量的.表示当前目录 PATH 使得系统可以在任何路径下识别java命令,设为:$JAVA_HOME/bin:$JRE_HOME/bin。 特别注意:环境变量值的结尾没有任何符号,不同值之间用:隔开(windows中用;)。 5、使配置...
  • Python之函数、变量

    千次阅读 2018-09-20 18:36:54
    函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 ...
  • BlockScout 环境变量详解

    千次阅读 2022-03-24 20:22:05
    变量名 ...这将在链列表下拉列表显示为选中状态。 POA Sokol all LOGO ✅ 标题徽标图像位置的环境变量。可以在此处找到不同链的徽标文件名称 /images/blockscout_logo.svg all LOGO_FOOTER ✅...
  • 在实证分析,我们经常需要在模型加入行业虚拟变量、年度虚拟变量等,以便控制不可观测的行业个体效应或年度个体效应。然而,在正式报告结果时,我们无需报告这些虚拟变量的系数,否则结果表格会变得非常冗长。 ...
  • NSISI基本语法---变量

    千次阅读 2018-10-13 15:57:39
    变量定义:var关键字来定义变量,使用$来引用变量变量是全局的并且是大小写敏感的。 1、系统常用变量 变量及其含义 变量 $INSTDIR $PROGRAMFILES $COMMONFILES $DESKTOP $EXEDIR ${NSISDIR} ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 241,626
精华内容 96,650
关键字:

当前文档中名称不是变量