linux shell 执行 几种方式区别 bash source .
bash xx.sh 或者sh xxx.sh
脚本没有可执行权限或没有指定解析器,使用的方法。
会产生一个子shell来执行脚本,脚本执行完毕后再返回父shell,所以脚本里面的变量获取不了。
/xxx/xxx.sh 或 ./xxx.sh
脚本需要有执行权限,通过chmod +x xxx.sh来添加即可。
会产生一个子shell来执行脚本,脚本执行完毕后再返回父shell,所以脚本里面的变量获取不了。
source xxx.sh 或者 . xxx.sh
先读入或加载xxx.sh脚本,然后从上到下依次执行脚本。是在当前的shell执行脚本,脚本中的变量可以正常获取输出!
source 和 . 相当于include的功能!
在一个脚本中需要引用另一个脚本,直接source script.sh 然后这个脚本产生的变量可以在当前脚本中使用了。如果是sh script.sh则变量获取不了。
sh < xxx.sh 或者 cat xxx.sh|sh
例子:
[xxx@hostname ~]$ cat b.sh # b.sh脚本内容如下
user=`whoami`[xxx@hostname ~]$ ./b.sh # 没有chmod +x 使用路径直接执行,包没有权限
-bash: ./b.sh: Permission denied[xxx@hostname ~]$ bash b.sh # 没有执行权行或没有指定解析器,使用sh 执行[xxx@hostname ~]$ echo $user # 脚本产生的变量为空!!因为sh 执行变量保存到子shell中了[xxx@hostname ~]$ source b.sh # 需要在当前父shell获取脚本产生的变量,使用source [xxx@hostname ~]$ echo $user # 脚本的变量可以获取
xxx
linux shell 执行 几种方式区别 bash source .相关推荐
- linux shell执行方式
linux shell执行有两种方式 shell脚本以#!/bin/bash开头,执行shell时先检查首行,在内部以下列方式执行: $/bin/bash script.sh 1. 使用sh执行. $ ...
- linux远程登录三种方式telnet,ssh,vnc
linux远程连接三种方式telnet,ssh,vnc telnet和ssh服务只能实现基于字符界面的远程控制,如果要基于图形界面进行远程控制,可以借助免费的VNC来完成. 一.telnet连接 1. ...
- windows系统中查看linux分区的三种方式
双系统中windows查看linux分区的三种方式 一.这个算是大家早有耳闻的啦,就是使用Explore2fs这个工具,可以去 http://www.chrysocome.net/explore2fs ...
- linux shell参数传递、获取方式
linux shell参数传递.获取方式
- win 读 linux分区,windows系统中查看linux分区的三种方式
双系统中windows查看linux分区的三种方式 一.这个算是大家早有耳闻的啦,就是使用Explore2fs这个工具,可以去 官方网站下载,这个工具用法简单就不多说了,如图所示: 二.使用一个叫磁盘 ...
- linux shell中./a.sh , sh a.sh , source a.sh, . ./a.sh的区别
在linux shell中, 执行shell script的方式有多种, 有什么区别呢? 现在用一个简单例子再来说下. a.sh的内容是: #! /bin/bash echo hello world ...
- Linux shell:sh csh tcsh ash bash dash zsh
Shell :贝壳,寓意类似内核的壳,Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.Shell 是一个用 C 语言编写的程序,它是用户使用 Linux ...
- linux shell 执行多个文件,/etc/profile、~/.bash_profile等几个文件的执行过程
关于登录linux时,/etc/profile.~/.bash_profile等几个文件的执行过程. 在登录Linux时要执行文件的过程如下: 在 刚登录Linux时,首先启动 /etc/profil ...
- linux安装mysql四种方式
一.前言 linux下安装mysql大概有四种安装方式,分别为仓库安装.本地安装.容器安装.以及源码安装.这几种方式分别对应着不同的工作环境,因此掌握这四种安装mysql方式便会极大的提高我们的工作效 ...
最新文章
- Django中ORM之或语句查询
- when and where is beanDefinitionNames filled
- net Core做一个webApi的简单实例
- XNA开发思考之3D开发中的小常识
- 中台唯一的胜利果实:大数据中台架构详解
- span的取值与赋值(原生js与jquery) - 对比篇
- 代码注释: (文字图案:HIRE)
- torchtext处理文本数据——使用自己的word2vec模型作为词向量建立词表(学习二)
- 代码英雄之云间战争:寡头时代,路在何方?
- 华为手机USB调试与Log
- 生成PDF的几种方式
- 麒麟操作系统产业化项目落户天津
- 【语义分割系列:一】DeepLab v1 / v2 论文阅读翻译笔记
- Docer 在centos中修改默认镜像配置
- Vue使用Swiper看这一篇就够了
- Messari分析师:买下一个JEPG时,先看看其存储层和元数据信息
- 便利贴--9{Cesium+js绘制多个点和多个线的图层,加标题}
- JS逆向加密——B 站弹幕 protobuf 分析
- JetBrains所有IDE和.NET 工具 V2022.1全面升级
- CUMT2017赛宁杯 GUESS