shell脚本EOF
⑴ shell脚本创建文件并写入内容
一、cat和EOF
cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;
EOF是“end of file”,表示文本结束符。
结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。
二、使用
看例子是最快的熟悉方法:
# cat << EOF > test.sh
> #!/bin/bash
> #you Shell script writes here.
> EOF
结果:
引用
# cat test.sh
#!/bin/bash
#you Shell script writes here.
可以看到,test.sh的内容就是cat生成的内容。
⑵ shell中EOF的作用
这是 Here document 用法
EOF本意是 End Of File,表明到了文件末尾。
使用格式基本是这样的:
命令 << EOF
内容段
EOF
将“内容段”整个作为命令的输入。
你的代码里就是用cat命令读入整段字符串并赋值给list变量。
其实,不一定要用EOF,只要是“内容段”中没有出现的字符串,都可以用来替代EOF,只是一个起始和结束的标志罢了。
有个特殊用法不得不说:
: << COMMENTBLOCK
shell脚本代码段
COMMENTBLOCK
这个用来注释整段脚本代码。 : 是shell中的空语句。
搜索一下 Here document 你会明白更多。
⑶ Linux shell:cat << EOF
Linux shell中cat << EOF的作用是从标准输入中读取文本,直到遇到预设的”EOF”标识为止,然后将读取的内容输出到标准输出或指定文件中。具体说明如下:
基本功能:cat << EOF允许用户从终端输入多行文本,输入结束后以”EOF”作为结束标识,cat命令会将输入的文本内容进行处理。如果不重定向输出,则默认输出到标准输出。
自定义结束标识:虽然常用的是”EOF”,但实际上这个结束标识可以是任意的字符串,只要开始和结束时的标识一致即可。例如,cat << BEGIN和对应的BEGIN结束标识。
自动去除前导制表符:使用<< EOF时,cat命令会自动去除每行文本的前导制表符,这对于保持文本格式的整洁非常有用。
重定向到文件:通过添加文件名,如cat << EOF > 文件名,可以将输入的文本内容保存到指定的文件中,而不是输出到标准输出。这在需要创建或修改文件内容时非常便利。
应用场景:cat << EOF在脚本编程中尤为有用,可以方便地嵌入多行文本内容,如配置文件、sql语句等,而无需手动创建和编辑文件。
总之,cat << EOF是Linux shell中一个强大且灵活的文本处理工具,适用于多种文本处理场景。
⑷ shell脚本里执行多个sql语句问题
你没有理解输入重定向的概念。在你上面的代码中,mysql -uDDAP -p$2是包含在输入重定向范围内的,所以不会提示你输入密码的。
你的$1 和$2也没有定义,可以参考如下写法:
#!/bin/sh
read -p "please input root password" pwd
mysql -uroot -p$pwd << EOF
\. /usr/src/DDAP-1.CreateUser.SQL
\. /usr/src/DDAP-2.CreateDatabase.SQL
\. /usr/src/DDAP-3.CreateTable.SQL
\. /usr/src/DDAP-4.CreateProcereAndFunction.SQL
\. /usr/src/DDAP-5.CreateData.SQL
EOF
