得之我幸 失之我命

when someone abandons you,it is him that gets loss because he lost someone who truly loves him but you just lost one who doesn’t love you.

sed 分隔符之谜

昨天在用 sed 替换某行 python 代码的时候,遇到了下面这个错

1
2
$ sed -i 's/"http": None/"http": "http://1.1.1.1:8080"/g' ~/demo.py
sed: -e expression #1, char 36: unknown option to `s'

Read More...


在 C++ 中有好几个术语,它们有两个词组成,交换顺序后意思就变了,而在使用过程中,常常可能因为对它们的混淆导致误人子弟

这几组术语分别是:

  1. 函数指针 vs 指针函数
  2. 数组指针 vs 指针数组
  3. 类模板 vs 模板类
  4. 函数模板 vs 模板函数

可以明确的是,上述几个术语中,重心在后面,前面的词是作为形容词使用的

Read More...


一个变量有三种可能的状态:未设定,空值,非空值,针对这三种情况,shell 可以进行不同的操作

Read More...


shell 脚本传参

$ 传参家族

创建一个脚本 test.sh,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
echo $0 # 当前脚本的文件名(间接运行时还包括绝对路径)
echo $3 # $n,传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 $1
echo $# # 传递给脚本或函数的参数个数,不包括 $0

# $* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号 ("") 包含时,都以"$1""$2" … "$n" 的形式输出所有参数;但是当它们被双引号 ("") 包含时,"$*" 会将所有的参数作为一个整体,以 "$1 $2 … $n" 的形式输出所有参数,"$@" 会将各个参数分开,以 "$1""$2" … "$n" 的形式输出所有参数
echo $* # 传递给脚本或函数的所有参数,不包括 $0
echo $@ # 传递给脚本或函数的所有参数,不包括 $0

echo $? # 上个命令的退出状态,或函数的返回值
echo $$ # 当前 Shell 进程 ID,对于 Shell 脚本,就是这些脚本所在的进程 ID
echo $_ # 上一个命令的最后一个参数
echo $! # 后台运行的最后一个进程的 ID 号

Read More...


大学的时候买了一个 Lenovo yoga2 i3 款,这个配置装 win 是有点弱了,于是就给它装了自己熟悉的 debian,还记得某个假期因为它没有有线网口,装系统的时候为了连接网络拿着 u 盘拷 iwifi 文件的经历

回到正题,现在它已经从桌面端退役,正式开始成为私人服务器,这时候就有问题接踵而来,首先,它自身的硬盘容量是不够用了的,手上有块 2t 的移动硬盘可以用,如果只是用 mount,在重启后挂载会失效,那要怎么实现移动硬盘的自动挂载呢

Read More...


本次讨论的是下面几个输出重定向(bash):

  • 2>&-
  • 2>/dev/null
  • |&
  • &>/dev/null
  • >/dev/null 2>&1

首先要清楚:

  • 1 是 standard out (stdout)
  • 2 是 standard error (stderr)
  • 如果没有给出明确的数字,bash 会假定给的是 1

Read More...


19 年开始接触 Jenkins,但是并没有跟 jf 有过多的交道,今年又碰到了它,并且和 jf 有了初步的接触,于是问题也是接踵而来,比如今天讨论的这个问题:在 jf 中执行 shell 脚本,当 shell 脚本遇到错误的时候,Jenkins 会忽略后续所有的步骤,为啥?咋办?

Read More...


the only present love demands is love