执行Shell脚本有哪些方式,区别在哪
Admin 2022-07-26 群英技术资讯 618 次浏览
执行shell脚本有以下几种方式
[root@pythontab.com tmp]# cd /tmp [root@pythontab.com tmp]# ./pythontab.sh
[root@pythontab.com tmp]# /tmp/pythontab.sh
[root@pythontab.com /]# bash /tmp/pythontab.sh
第一种和第二种没有什么区别,两种方式都需要提前赋予脚本以执行权限。
第三种是把脚本当做bash的调用来处理,所以,脚本不需要有执行权限就可以执行。
前三种方式都是在当前shell中打开一个子shell来执行脚本内容,当脚本内容结束,则子shell关闭,回到父shell中。
第四种是使脚本内容在当前shell里执行,而不是单独开子shell执行。
开子shell与不开子shell的区别就在于,环境变量的继承关系,如在子shell中设置的当前变量,不做特殊通道处理的话,父shell是不可见的。
而在当前shell中执行的话,则所有设置的环境变量都是直接生效可用的。
[root@pythontab.com /]# cat /tmp/pythontab.sh top
├─sshd─┬─sshd───bash───bash───top │ └─sshd───bash───pstree
├─sshd─┬─sshd───bash───top │ └─sshd───bash───pstree
建立两个脚本,father.sh和subshell.sh。其中father.sh调用subshell.sh
[root@pythontab.com /]# cat /tmp/father.sh v_ceshi='father' #-------父shell中定义变量 echo "以子shell方式调用脚本" /tmp/subshell.sh echo "输出v_ceshi值为${v_ceshi}" echo "" echo "在当前shell中执行脚本" . /tmp/subshell.sh echo "输出v_ceshi值为${v_ceshi}"
[root@pythontab.com /]#
[root@pythontab.com /]# cat /tmp/subshell.sh v_ceshi=son
[root@pythontab.com /]#
执行结果为
[root@pythontab.com /]# /tmp/father.sh 以子shell方式调用脚本 输出v_ceshi值为father 在当前shell中执行脚本 输出v_ceshi值为son
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
linux可以改变文件的权限。在linux中,可以利用chmod命令来修改文件权限,语法“chmod [-cfvR] [--help] [--version] mode file...”;chmod会根据mode值来更改每个给定文件的文件模式位,mode值可以是要进行更改的符号模式表示,也可以是表示新模式位的位模式的八进制数。
Linux下的fuser命令的基本使用是什么?本文主要给大家详细介绍了Linux系统下使用fuser命令的方法,在管理系统进程的时候使用非常方便。感兴趣的朋友一定不要错过了。
鼠标怎么设置为左手?deepin20系统中,默认鼠标是右手模式,但是用习惯了左手,想要设置为左手模式,该怎么操作呢?下面我们就来看看deepin20左手鼠标设置方法,需要的朋友可以参考下
linux中total指的是列表中所有文件的磁盘空间占用总和,也即资源占用总和,统计单位是kb;total是在使用“ls -l”命令时显示的第一行结果,其中获取目录的大小并非是目录所包含的文件的总大小,而仅仅是目录自身的大小。
linux同步时间命令是什么?在Linux下,是默认系统时间和硬件时间并不自动同步的,因此这篇文章就给大家来介绍一下linux同步时间命令,而linux同步时间命令有很多,例如hwclock命令、ntpdate命令等等,接下来我们详细的了解看看。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008