下面是传统的用法,但是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]