Linux - Shell - #!/bin/bash
2024-09-02 02:33:38
概述
- 简单解释一下 shell 脚本卡头的 #!/bin/bash
- 水一篇, 少一篇
背景
shell 脚本中的注释
- 通常是 以# 卡头的行
但是有时候执行 shell 的时候, 会有这种内容
#!/bin/bash
1. #!/bin/bash
这不是注释
- 他是有意义的
shell 脚本执行
- 场景
- 一个 脚本
- 由 shell 执行
- 场景
!/bin/bash
- 作用
- 指定 shell
- 作用
2. 尝试
场景1: bash
脚本: test01.sh
#!/bin/bash
echo 'hello'
执行
命令
./test01.sh
结果
- 正常显示
场景2: ksh
概述
- ksh 是另外一种 shell
脚本: test02.sh
#!/bin/ksh
echo 'hello'
执行1
命令
./test02.sh
结果
- 提示找不到 ksh
执行2
命令
> bash test02.sh
结果
- 执行成功
执行3
命令
> source test02.sh
结果
- 执行成功
3. 结论
centos 的默认 shell, 是 bash
- 这个不是上面操作得出的结论, 但是还是请各位记住
如果在 脚本 第一行用 #! 指定了执行 shell
- 则 ./ 方式执行, 会使用 指定的 shell
- bash 则会使用 bash 执行
- 在 命令行 指定的 shell 优先级更高
- source 则是使用 当前shell 来执行
4. 建议
- 脚本最好带上这个配置
- shell 之间的不同, 并不仅仅是 名字的差异
- 有一个标注, 可以更清楚的描述环境
- 为自己和后来人少埋一个坑
- shell 之间的不同, 并不仅仅是 名字的差异
ps
ref
- 学习 bash
其他
- 其实 py 脚本, 也有类似的东西
!/usr/bin/python
- 当然这个要是有兴趣, 可以下来研究
- 其实 py 脚本, 也有类似的东西
最新文章
- Git快速入门
- CSS3动画制作
- [转]看懂UML类图
- .Net程序员飞扬有用的85个工具
- [SQL]复制数据库某一个表到另一个数据库中
- [C++] C\C++ printf 输出格式
- $self $index $first $last parent() outerParent()
- 并行计算之Memory barrier(内存
- C#压缩文件为zip格式
- uva 10304 - Optimal Binary Search Tree 区间dp
- setFocus一定要写在setLayout设置的后面,否则不起作用——使用setFocusPolicy为控件设置不同的焦点策略:Tab焦点,Click焦点,Wheel焦点和没有焦点
- Bootstrap 模态对话框只加载一次 remote 数据的解决办法 转载
- listview 去掉header和footer中的分割线
- Bootstrap基础学习(一)—表格与按钮
- python安装第三方库
- IT题库5-并发和并行
- 剑指offer 7. 递归和循环 斐波那契数列
- python正则表达式(三)
- 轮播图js编写
- docker容器和镜像
热门文章
- win10中Pycharm连接mysql时区错误的解决
- 解决NahimicSvc32.exe与bilibili直播姬的音频不兼容的问题
- MS SQLServer相关自动化程序的问题汇总 (SQLServer每天定时输出EXCEL或xml的格式的问题等 )
- LeetCode 160. 相交链表 (找出两个链表的公共结点)
- axios 跨域请求允许带cookie,则服务器Access-Control-Allow-Origin应设置为具体域名,否则请求无法获得返回数据
- Extreme Learning Machine
- LaTeX技巧011:LaTtex中如何产生直立体希腊字母?
- BK: Data mining
- 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。”
- Selenium3+python自动化009- 截图