Linux-#!/bin/sh理解
#!是一个特殊符号,/bin/sh是用来解释该脚本的的shell路径
#!/bin/sh指该脚本使用/bin/sh来执行
sh只是其中一种解释方式,通过如下命令可以查到支持的shell解释方式:
xx@xxx$ sudo cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
区别在于当用sh解释时,当source命令执行有问题时,sh不再往下执行;
但用bash时,bash会继续执行之后的命令。
当没有加#!+shell解释器时,脚本会默认当前用户登录的shell为脚本解释器,通常为bash
在终端下要执行一个可执行文件,直接输入它的文件名+路径就好了。
之前一直看到输入比如./test,用于执行当前目录下的test文件,一直以为./是执行指令。
现在才知道原来./test的./是为了承接现在所在的文件夹,让现在所在的文件夹+文件,合并成该文件的完整路径,用于执行。
如果非要在执行命令前加上一些指令用于执行,那就只能是bash/sh
ly@ubuntu:~/Desktop/sutest$ ./test
fail to read: Permission denied
ly@ubuntu:~/Desktop/sutest$ test
ly@ubuntu:~/Desktop/sutest$ which test //因为这里执行的是/usr/bin/test,所以不会有当前路径下的test的正确输出
/usr/bin/test
Linux-#!/bin/sh理解的更多相关文章
- Linux - /bin/sh^M: bad interpreter: No such file or directory
问题 在Windows环境下用Notepad++写了个shell脚本,上传到Linux平台后运行报错如下: /bin/sh^M: bad interpreter: No such file or di ...
- [shell]Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别
一直以为在shell脚本中#都是代表着注释功能,同样在脚本开始的#!/bin/sh也只是告诉用户这是一个shell脚本,而最近顺手查了下,才发现不是这个意思,分享下面的文章. 转自:http://ww ...
- Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别
一.意思 #!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径. 其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释 ...
- linux 报错 bash ‘/bin/sh: Syntax error: “(” unexpected
今天用make 编译 蹦到 bash ‘/bin/sh: Syntax error: “(” unexpected 和 /bin/sh: [[: not found 这种莫名奇妙的错误 原因是是lin ...
- Linux:/bin/bash和/bin/sh的区别
bash.dash(/bin/bash和/bin/sh) 原文:http://www.cnblogs.com/dkblog/archive/2011/04/02/2003822.html Linux中 ...
- Linux中运行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
在Linux中运行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分析:这是不同系统编码格式引起的:在windows系统中 ...
- [linux] ubuntu 切换默认的/bin/sh
[linux] ubuntu 切换默认的/bin/sh 背景 ubuntu 默认的sh, 也就是/bin/sh默认被切换成了dash,dash体积相对于bash更小,并且性能相对于bash更好, 但是 ...
- linux sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory.这是不同系统编码格式引起的:在windows系统中编辑的. ...
- Linux学习笔记之Linux shell脚本运行出现问题:bash: ./test: bin/sh: bad interpreter: No such file or directory
问题: 在Linux系统中使用“vi test.sh”命令创建.sh文件,保存文件(:wq)并赋予权限(chmod +x test.sh)后,执行(./test.sh),出现问题:“bash: ./t ...
- 在Linux中执行.sh脚本,异常/bin/sh^M
在Linux中执行.sh脚本,异常/bin/sh^M 在linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分 ...
随机推荐
- Django学习之八:forms组件【对form舒心了】
目录 Django forms组件 bound and unbound form instance forms渲染有关 隐藏一个字段,不渲染它 form 校验 form类 ModelForm 利用Mo ...
- SpringBoot JPA(实现查询多值)
JPA是java Persistence API简称,中文名:java持久层API,JPA是JCP组织发布的J2EE标准之一 1.创建DataSource连接池对象 <dependency> ...
- Webpack 4教程:为什么要优化代码
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.原文出处:https://wanago.io/2018/07/30/webpack-4-course-part ...
- Python绘图与可视化
Python有很多可视化工具,本篇只介绍Matplotlib. Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在Python脚本.IPython的交互环境下.Web应用 ...
- 自动化测试 Appium之Python运行环境搭建 Part1
Appium之Python运行环境搭建 Part1 by:授客 QQ:1033553122 实践环境 Win7 Python 3.4.0 JAVA JDK 1.8.0_121 node.js8.11. ...
- js清空数组的方法
方式1:splice函数 arrayObject.splice(index,howmany,element1,.....,elementX) index:必选,规定从何处添加/删除元素. howman ...
- Linux(三)——Unix&Linux 的基础命令
Linux(三)--Unix&Linux 的基础命令 快捷键 Ctl-A 光标移动到行首 Ctl-C 终止命令 Ctl-D 注销登录 Ctl-E 光标移动到行尾 Ctl-U 删除光标到行首的所 ...
- 使用Navicat快速生成MySQL数据字典
1.通过information_schema.COLUMNS表 查询该表可得到所需字段信息 SELECT * FROM information_schema.COLUMNS; 如下图所示: 2.示例 ...
- 解决Jenkins运行robot framework selenium脚本不打开浏览器的问题
1.总结就是,不能使用msi安装的jenkins,最好使用tomcat下的war包方式的jenkins 参考连接https://www.cnblogs.com/hotpsy/p/6907233.htm ...
- leetcode 54. Spiral Matrix 、59. Spiral Matrix II
54题是把二维数组安卓螺旋的顺序进行打印,59题是把1到n平方的数字按照螺旋的顺序进行放置 54. Spiral Matrix start表示的是每次一圈的开始,每次开始其实就是从(0,0).(1,1 ...