Shell下多行字符串的变量定义
直接输出到文件
纯文本, 文本当中没有任何变量
# use '>' 表示清除原文件,并进行追加操作, use '>>' 表示追加操作FILE="~/www.txt"cat > ${FILE} <<- EOFwww.qq.comwww.google.comEOF# orcat > ${FILE} <<- 'EOF'www.qq.comwww.google.comEOF
文本当中带有变量
qq="www.qq.com"google="www.google.com"VAR='~/var.txt'cat > ${VAR} <<- EOF${qq}${google}EOFcat > ${VAR} <<- 'EOF'${qq}${google}EOF
注意: 上面两个文件的内容是不一样的, 对于第一种方式, 会将变量全部解析, 如果变量未定义, 则使用 “” 替换变量, 对于方 式二, 不会解析变量, 直接是纯文本的方式写入.
输出到变量中, 即为变量赋值
read 的方式
read -r -d '' var <<- EOFthis is line 1this is line 2EOFread -r -d '' var <<- 'EOF'this is line 1this is line 2EOF
使用 EOF 和 ‘EOF’ 的区别和上面的区别是一样的.
cat 的方式
var=$(cat <<- EOFthis is line 1this is line 2EOF)var=$(cat <<- 'EOF'this is line 1this is line 2EOF)
使用 EOF 和 ‘EOF’ 的区别和上面的区别是一样的.
发布于 2020-11-28 18:10
