驽马十驾 驽马十驾

驽马十驾,功在不舍

目录
shell常用脚本收集-1
/  

shell常用脚本收集-1

读取文件内容

下面是传统的用法,但是IDE会提示错误:To read lines rather than words, pipe/redirect to a 'while read' loop,推荐使用 while 循环

# 方法1:传统用法
for url in $(cat ub.log); do
  echo "${url}"
done

# 方法2:推荐用法,最后一行必须有个换行符,否则会少读取一行
while IFS= read -r url; do
  echo "${url}"
done < ub.log

下面用法中有一个进阶操作,就是假如文本内容如下所示,我们通过,对内容进行分割后输出:

http://192.168.0.201:8080,vm-201
http://192.168.0.66:12000,vm-66
http://192.168.0.66:8080,vm-67

对应的 shell 脚本为

while IFS=, read -r url name; do
  printf '%s %s\n' "$name" "$url"
done < a.txt

使用方法 2 特别注意了,最后一行必须有一个空白行,即空出一行,否则会少读取一行。

时间格式化

echo "当前时间:$(date +%Y-%m-%d' '%H:%M:%S)"
echo "当前日期:$(date +%Y-%m-%d)"

数值自增

# 推荐用法,不需要$进行参数引用
((i++))
i=$(( $i + 1 ))
# 其他用法
i=`expr $i + 1`
let i+=1
i=$[$i+1]
骐骥一跃,不能十步。驽马十驾,功在不舍。