多行shell脚本如何执行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多行shell脚本如何执行?相关的知识,希望对你有一定的参考价值。

shell脚本的执行可以是输入一行执行一行,如:
bash-3.2$ echo hello world
hello world

也可以是直接运行编辑好的脚本文件,如:
bash-3.2$ cat > helloworld
echo hello world
bash-3.2$
bash-3.2$ chmod +x helloworld
bash-3.2$
bash-3.2$ helloworld
hello world

不过现在我不想单行执行,也不想运行文件脚本,想运行一个多行的shell脚本,怎么办?如下面的几行:
bash-3.2$ abc=1
bash-3.2$
bash-3.2$ if $abc
> echo $abc
>
是不是在最后一行要加点什么特殊字符?
哪位高人知道,帮忙解答一下。

没有多行shell脚本这种说法,脚本就是一个文件——脚本文件。
shell执行的是命令,是语句,如果不用脚本,只能一个语句一个语句地执行。
当然,一个语句可以分多行写。对于多行的情况,只要将语句输入完整了,语法正确了,shell自然会知道你的输入已经结束,就会开始执行,不需要任何特殊字符。
例如:
bash-3.2$ abc=1
bash-3.2$
bash-3.2$ if [ $abc -eq 1 ]; then
> echo $abc
> fi

这个if语句,以if开头,fi结束,最后回车后,shell就开始执行了,并打印出结果1。
if 需要用到判断表达式,注意语法。
参考技术A php 配置文件中safe_mode关闭,然后用php的函数调用就行 exec("shell命令")
下面是一个简单的例子,输出当前用户
echo exec('whoami');
追问

这位兄弟所答非所问,我就是想多行执行shell,单行执行和脚本执行我都会做。
继续求解。。。

参考技术B if语句写错了而已。
if [ $abc -eq 1 ]; then echo $abc; fi
参考技术C 加&,后台执行。

以上是关于多行shell脚本如何执行?的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本中实现远程和其他用户的子shell执行

shell脚本编程小技巧——如何解决多行重定,变量不被shell解释

Shell脚本编程小技巧-如何解决脚本中多行重定向结束符不用对齐到行首

Shell脚本单行和多行注释

Shell脚本——编程规范与变量

linux下脚本实现从一个文件中读数,有文件多行 (每行都是:名称 + 多个空格 + 数据 ),