shell和shell脚本 有啥区别啊
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell和shell脚本 有啥区别啊相关的知识,希望对你有一定的参考价值。
"shell" 和 "shell script" 是计算机领域的两个术语,它们之间有一些区别。
Shell:这是一种解释型的命令行界面,是操作系统的一个外壳。它允许用户通过命令行来执行操作系统的各种任务,如执行命令、管理文件、运行程序等。
Shell script:这是一种使用 shell 语言编写的脚本。它允许用户在 shell 环境中使用脚本语言自动执行一系列命令和任务,以完成一个特定的任务。
总的来说,shell 是一种命令行界面,而 shell script 则是一种使用 shell 语言的脚本,它可以在 shell 环境中执行。
u+x
a.sh,
而后就可以直接用全路径来执行脚本了,比如当前文件夹下用./a.sh,如果如果脚本所在目录在path环境变量之中,
则直接用a.sh即可(这和运行我们自己编写的程序是一个道理)sh/bash
./a.sh
这种情况不需要脚本具有执行权限以上两种执行方式都是在子shell中执行的,也就是说当前shell需要启动另外一个shell,用来执行a.sh内的命令source
./a.sh
.
./a.sh(注意前面的
.
)以上两种执行方式是在当前shell下执行,并不需要建立子shellsource和
.
命令的作用:用来执行一个脚本
前两种方式和后两种方式的另外区别:如果你在一个脚本里export
$kkk=111
,如果你用./a.sh执行该脚本,执行完毕后,你运行
echo
$kkk
,发现没有值,如果你用source来执行
,然后再echo
,就会发现kkk=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是
source不同它就是在本shell中执行的,所以可以看到结果。 参考技术B shell和shell脚本本质上没啥区别,shell就是那些指令的抽象统称,shell脚本就是使用shell具体的指令来完成一个复杂逻辑
PHP 中的 system()、exec() 和 shell_exec() 有啥区别?
【中文标题】PHP 中的 system()、exec() 和 shell_exec() 有啥区别?【英文标题】:What are the differences of system(), exec() and shell_exec() in PHP?PHP 中的 system()、exec() 和 shell_exec() 有什么区别? 【发布时间】:2012-06-05 10:06:54 【问题描述】:可以通过三个PHP函数来运行外部命令
system();
exec();
shell_exec();
但是它们有什么区别呢?尽管它们有特定的应用,但在大多数情况下,它们都可以同样使用。我很想知道当它们可以同等使用时哪个是首选。例如,对于解压缩文件或压缩文件夹(使用 tar 命令),哪个是首选(可能从性能角度来看)?
更新: 在另一个问题中,我发现了一个非常有用的 link 描述了这些功能的不同方面。我在这里分享链接,因为其他人可能会使用它来更好地了解安全问题和其他方面。
【问题讨论】:
不要吹毛求疵,但是手册对各自的功能是怎么说的? 另外,你忘了 passthru () :) @GordonM 我阅读了手册,但我不了解每个功能的偏好。在许多情况下,它们可以同等使用。我想要一个实用的观点。 ***.com/questions/732832/…的可能重复 @periklis 你是对的,这个问题解决了同样的问题,但我找不到它。一个答案有一个非常有用的链接,用于详细解释。谢谢! 【参考方案1】:exec — 执行外部程序
system — 执行外部程序并显示输出
shell_exec — 通过 shell 执行命令并将完整的输出作为字符串返回
所以如果你不需要输出,我会选择 exec。
更多细节:
http://php.net/manual/en/function.exec.php http://php.net/manual/en/function.system.php http://php.net/shell_exec【讨论】:
exec()
返回输出的最后一行,所以如果你正在调用一个简单的程序,它只输出一个像whoami
或pwd
这样的值,exec()
是完美的。跨度>
以上是关于shell和shell脚本 有啥区别啊的主要内容,如果未能解决你的问题,请参考以下文章