Shell 脚本

1、 常用技巧

1.1 读取配置文件

可以使用 eval 方法,好像最后一行没有读取到

while read line;do
eval "$line"
done < .env
echo $DATA_PATH
echo $IP
echo $Name

也可以使用 sed 方法

TEST=`sed '/^DATA_PATH=/!d;s/.*=//' .env`
echo $TEST

1.2 判断字符串为空

#!/bin/sh
STRING=
if [ -z "$STRING" ]; then
echo "STRING is empty"
fi
if [ -n "$STRING" ]; then
echo "STRING is not empty"
fi

1.3 当前执行 shell 路径

有时候执行 shell 路径,并不是当前路径,这样在 shell 脚本中,如果读取相对路径的文件,就会报告路径错误。、

这时候,要进行路径转换,例如:

# 无论从任何路径进来,都切换到当前目录
cd `dirname $0`

1.4 相对路径转绝对路径

export DIR=$(cd ../../../..; pwd)

2、基本语法

2.1 case

#!/bin/bash
printf "Input integer number: "
read num
case $num in
1)
echo "Monday"
;;
2)
echo "Tuesday"
;;
3)
echo "Wednesday"
;;
4)
echo "Thursday"
;;
5)
echo "Friday"
;;
6)
echo "Saturday"
;;
7)
echo "Sunday"
;;
*)
echo "error"
esac

传递参数

#!/bin/bash
case $1 in "start")
echo "start"
;;
"stop")
echo "stop"
;;
esac

2.2 for in

#!/bin/bash
for str in "C语言中文网" "http://c.biancheng.net/" "成立7年了" "日IP数万"
do
echo $str
done