可以使用 eval 方法,好像最后一行没有读取到
while read line;doeval "$line"done < .envecho $DATA_PATHecho $IPecho $Name
也可以使用 sed 方法
TEST=`sed '/^DATA_PATH=/!d;s/.*=//' .env`echo $TEST
#!/bin/shSTRING=if [ -z "$STRING" ]; thenecho "STRING is empty"fiif [ -n "$STRING" ]; thenecho "STRING is not empty"fi
有时候执行 shell 路径,并不是当前路径,这样在 shell 脚本中,如果读取相对路径的文件,就会报告路径错误。、
这时候,要进行路径转换,例如:
# 无论从任何路径进来,都切换到当前目录cd `dirname $0`
export DIR=$(cd ../../../..; pwd)
#!/bin/bashprintf "Input integer number: "read numcase $num in1)echo "Monday";;2)echo "Tuesday";;3)echo "Wednesday";;4)echo "Thursday";;5)echo "Friday";;6)echo "Saturday";;7)echo "Sunday";;*)echo "error"esac
传递参数
#!/bin/bashcase $1 in "start")echo "start";;"stop")echo "stop";;esac
#!/bin/bashfor str in "C语言中文网" "http://c.biancheng.net/" "成立7年了" "日IP数万"doecho $strdone