shell中source、sh、bash、./的区别
一、sh和bash的区别
sh和bash基本是一样,在我的linux环境查看,它俩是一样的:
[root@unis0612p02-165 run]# ls -al `which sh`
lrwxrwxrwx 1 root root 4 6月 23 2020 /usr/bin/sh -> bash
那么在shell脚本中的第一行如果声明了如下:
#!/bin/bash
#!/bin/sh
上面两行是一样的;
二、sh 和./的区别
一般我们是这样用的:
sh install.sh 或者./install.sh
这两个是有区别的:
第一个区别:
比如install.sh脚本中第一行声明的是
#!/usr/bin/python
那么如果使用./sh,就是会去使用脚本中声明的第一行的解释器来解释脚本的内容
如果没声明,那么就用系统默认的bash。如果这个时候你用sh,那么脚本中的第一行就没有用了,后面的是Python语言写的话,sh解释会报错。
如果你第一行声明是:
#!/bin/bash
那么sh 和./是没有区别的。
第二个区别是:权限问题
使用sh install.sh 如果这个脚本文件当前用户没有执行的权限也是能够执行的,但是如果使用./install.sh就会报错,没有权限,需要手动chmod +x加上权限才能执行成功。
三、source也是对文件进行执行的命令
和上面的sh bash ./不同的是,它是在当前的shell程序下去执行,而上面的三种是在当前的shell下重新开一个子shell进行执行,当前的shell就是他的父shell了,可能会有一些变量不能用用吧。
目前我用source install.sh 和bash install.sh sh install.sh ./install.sh效果是一样的。
借鉴别人写的挺好的文章:
https://blog.csdn.net/weixin_37569048/article/details/97764626?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-1.no_search_link&spm=1001.2101.3001.4242
shell中source、sh、bash、./的区别相关推荐
- linux shell bin sh,linux shell中#bin/sh的理解
摘要 腾兴网为您分享:linux shell中#bin/sh的理解,支付旭尊,小熊到家,天天美剧,淘金宝等软件知识,以及维棠flv视频软件,usb抓包工具,红警2无敌,ucbug造梦西游4,壁纸工作室 ...
- linux shell中./a.sh , sh a.sh , source a.sh, . ./a.sh的区别
在linux shell中, 执行shell script的方式有多种, 有什么区别呢? 现在用一个简单例子再来说下. a.sh的内容是: #! /bin/bash echo hello world ...
- shell中source命令与sh命令的区别
一.source命令 1.1 source命令的使用方法 source filename.sh 文件没有可执行权限时,也可以使用source命令执行. source命令是在当前shell中执行的,并未 ...
- shell中source与sh区别
shell中使用source conf.sh,是直接运行conf.sh的命令,不创建子shell,类似与html中include,而sh是则创建子shell, 子shell里面 的变量父shell无法 ...
- linux基础:shell中的sh与bash区别与常用命令
目录 一,什么是sh和bash? 二,shell的基本用法 2.1,变量 2.2,算术运算 2.3,使用 bash 计算器在shell脚本中进行浮点运算 2.4,shell中的条件判断命令test和[ ...
- linux脚本中的exit,Shell中exit和return的区别讲解
1.exit命令 exit命令是Shell内建命令,用于退出当前Shell进程.使用格式如下: exit [] 可以指定退出状态n,n的取值范围是0-255,一般情况下,0表示正常退出,非零表示异常退 ...
- ubuntu系统shell 中source: not found错误
https://www.cnblogs.com/laien/p/8277617.html shell脚本中含有source命令运行时提示 source: not found 测试: 运行 ls -l ...
- Shell 中 exit 和 return 的区别
1.exit 命令 exit 命令是 Shell 内建命令,用于退出当前 Shell 进程.使用格式如下: exit [N] 可以指定退出状态 N,N 的取值范围是 0-255,一般情况下,0 表示正 ...
- 几种常见shell解释器(sh,bash,csh,tcsh,ash)以及bash的优点
文章目录 shell解释器的定义 shell的分类 sh csh tcsh ash bash bash 的优点 shell解释器的定义 Unix/Linux上常见的Shell脚本解释器有bash.sh ...
最新文章
- java基础线程_Java基础之多线程没那么复杂!
- HDU - 2586 How far away LCA+tanjar离线算法
- NHibernate之旅(8):巧用组件之依赖对象
- 高速PCB设计知识问答
- zookeeper watch笔记
- Ubuntu 防火墙 ufw
- 【汇编优化】ARM Intrinsic优化
- 在装有windows跟ubuntu的机器上重新安装windows后修复ubuntu的grub
- Vue之单文件组件的数据传递,axios请求数据及路由router
- Hyperion神器之SmartView产品(下篇)
- STC8G七彩数字时钟、GPIO设置、DS1302使用、热敏电阻测温、SM5166P和MBI5024控制数码管显示
- shader变体是什么_一种Shader变体收集和打包编译优化的思路
- unity text颜色渐变
- R语言抽样并验证总体分别为正态分布、均匀分布、指数分布时样本均值的抽样分布
- 【学习笔记】欧拉筛法(线性筛素数)
- 【bat/batch】bat中的转义字符
- 微指令和指令(机器指令)有什么区别?
- java-01背包(动态规划)
- 在阿里云服务器中部署nodeBB项目(nodeBB系列一)
- 用matplotlib.pyplot绘制线形图
热门文章
- 在2016年度山东省计算机技能大赛中,学院在2016年山东省职业院校技能大赛中再获佳绩...
- Aviation turbofan starting model
- Java程序员工资尤其的高,具体原因是什么呢?
- Elastic Search Java API(文档操作API、Query DSL查询API)、es搜索引擎实战demo
- SVM之线性不可分与核技巧
- 德家:你知道吗?朋友圈里的微商传销正在疯狂蔓延
- OR-Tools工具介绍以及实战(从入门到超神Python版)
- ffmpeg安装及在java中的使用案例
- can‘t decrement vector iterator before begin
- 企业内部信息安全管理——(一)风险识别和管控