我在bash脚本中找到了以下命令:
git blame $NOT_WHITESPACE --line-porcelain "${2-@}" -- "$file"
Run Code Online (Sandbox Code Playgroud)
这${2-@}是什么意思?尝试,它返回第二个参数,如果它不存在则返回"@".根据文档,${2:-@}应该做同样的事情.我试了一下,确实也是这样.有什么不同?它在哪里记录?手册页似乎没有说明这种表示法.
$ {参数:-word}
$ {参数WORD}
如果参数PARAMETER未设置(从未定义)或null(空),则此参数将扩展为WORD,否则它将扩展为PARAMETER的值,就好像它只是$ {PARAMETER}一样.如果省略:(冒号),如第二种形式所示,则默认值仅在参数未设置时使用,而不是在为空时使用.
Run Code Online (Sandbox Code Playgroud)echo "Your home directory is: ${HOME:-/home/$USER}." echo "${HOME:-/home/$USER} will be used to store your personal data."如果HOME未设置或为空,则每次要打印有用的内容时,都需要将该参数语法放入.
Run Code Online (Sandbox Code Playgroud)#!/bin/bash read -p "Enter your gender (just press ENTER to not tell us): " GENDER echo "Your gender is ${GENDER:-a secret}."它将打印出"你的性别是一个秘密".当你没有输入性别.请注意,默认值用于扩展时间,不会分配给参数.
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |