总是使用 GPG 对你的提交进行签名

Troubleshooting

如果你遇到了报错 signing failed: Inappropriate ioctl for device,把 export GPG_TTY="$(tty)" 加入到 .bashrc 就行了

Bash 中的序列表达式

Bash 中序列表达式用于产生一个序列,其结构为 {start..end[..step]}。其中 startend 可以为整数或者单个字符,分别表示序列的开始与结束,可选的 step 表示生成的序列的步长,必须为整数,否则表达式无效。

整数序列

startend 都是整数时,产生从 startend,步长为 step 的整数序列。startend 可以包含若干 0 前缀,此时生成的序列中各个序列项的数字个数将相同,不足的补 0 前缀。例如:

 1 $ echo {1..10}                  (1)
 2 1 2 3 4 5 6 7 8 9 10
 3 $ echo {1..10..0}               (2)
 4 1 2 3 4 5 6 7 8 9 10
 5 $ echo {1..10..3}
 6 1 4 7 10
 7 $ echo {01..010..3}             (3)
 8 001 004 007 010
 9 $ echo {01..00010..3}           (4)
10 00001 00004 00007 00010
  1. 未指定步长时,默认为 1

  2. 步长为 0 时,采用步长为 1

  3. 输出序列项都补充到 3 个数字

  4. 输出序列项都补充至 5 个数字

Bash 中的参数扩展

经常容易忘,整理一下,记录下来

使用默认值

${parameter:-word}

如果 parameter 未定义或值为空,将返回 word 的扩展,否则返回 parameter 的值,parameter 本身的值不会变化。

 1 $ echo $a                    (1)
 2 
 3 $ echo ${a:-hello}           (2)
 4 hello
 5 $ echo $a
 6 
 7 $ a=hello                    (3)
 8 $ echo ${a:-world}           (4)
 9 hello
10 $ echo $a
11 hello
  1. 变量 a 未定义

  2. 变量 a 未定义,则返回 hello

  3. 变量 a 赋值

  4. 变量 a 有值且不为空,返回变量 a 本身