终于明白#!bin/sh是什么意思了
欢迎访问我的技术群425783133
看了一篇文章,终于知道#!bin/sh是什么意思了。
现将原文链接如下:
http://bbs.dlmu.net/learn/html/waiyuxuexi/jisuanjixitong/2009/0602/18966.html
以下是部分内容
注意:#!行中的解释器的路径必须是全路径,exec函数并不对其特殊处理,比如用PATH变量来搜索它的真实路径,所以路径是由程序员来保证正确的。
二、我的脚本第一句必须得是#!/bin/bash吗?
当然不必了,通过上面的解释,其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本,比如说/bin/csh脚本,/bin/perl脚本,/bin/awk脚本,/bin/sed脚本,甚至/bin/echo等等。那我们真的能写一个/bin/echo的脚本文件吗?我们来试试,下面是一个例子:
代码:
#!/bin/echo -e
我把这只有一行的程序(实际上它也只能是一行,echo程序并不是被设计成像awk那样的编程语言,能写成源程序文件)命名为myecho,加上权限后执行它:
代码:
$ ./myecho "hi\a" ./myecho hi
如果你的echo支持-e选项并且你工作的环境还算安静,你在得到上面的结果的时候也应该听到清脆的终端响铃。但这种程序是毫无作用的。
终于明白#!bin/sh是什么意思了相关推荐
- linux运行不了.sh文件,linux下不能执行/bin/sh脚本的原因:command not found
Linux下执行.sh脚本错误:bin/sh^M: bad interpreter: No such file or directory 原因是.sh脚本在windows系统下用记事本文件编写的.不同 ...
- 浅显易懂 Makefile 入门 (08)— 默认 shell (/bin/sh)、命令回显、make参数(-n 只显示命令但不执行,-s 禁止所有回显)、单行命令、多行命令、并发执行
1. shell 相关 1.1 默认 shell Makefile 所使用的命令是由 shell 命令行组成,他们是一条一条执行的. 多个命令之间要使用分号隔开,Makefile 中的任何命令都要以 ...
- Ret2Libc(2) (有system、无‘/bin/sh’)绕过NX、ASLR
和Ret2Libc(1)一样,先把程序扔进IDA看看代码 和Ret2Libc(1)一样,gets存在溢出漏洞 gdb-peda$ checksec CANARY : disabled FORTI ...
- Ret2Libc(1) (有system、/bin/sh)绕过NX、ASLR
Ret2Libc即控制程序执行libc库中的函数. 通常是返回到某个函数的plt处,或者函数运行时候的实际地址. 下面是一个例子: 可以看出程序gets有一个明显的溢出漏洞 gdb-peda$ che ...
- Compiling: main.cpp /bin/sh: g++: not found
Kbuntu用codeblocks编写C程序的时候,编译报错如下: Compiling: main.cpp /bin/sh: g++: not found 解决方法: sudo apt-get ins ...
- ubuntu编译linux报错/bin/sh: 1: mkimage: not found
报错 Kernel: arch/arm/boot/Image is readyKernel: arch/arm/boot/zImage is readyMKIMAGE arch/arm/boot/dt ...
- 关于#!/bin/sh 和 #!/bin/bash 的差别
在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本. 目前研发送测的shell脚本中主要有以下两种方式: (1) #!/bin/sh (2) #!/bin/bash 在这里求教同福客 ...
- bash、dash(/bin/bash和/bin/sh)
Linux中的shell有多种类型,其中最常用的几种是Bourne shell(sh).C shell(csh)和Korn shell(ksh).三种shell各有优缺点.Bourne ...
- 看完这篇文章之后,终于明白了编译到底怎么回事。
看完这篇文章之后,终于明白了编译到底怎么回事. 1 对于同一个语句,有如下三种:高级语言.低级语言.机器语言的表示 C语言 a=b+1; 汇编语言 mov -0xc(%ebp),%eax add ...
- 【错误记录】编译 Linux 内核报错 ( /bin/sh: 1: bison: not found )
文章目录 一.报错信息 二.解决方案 一.报错信息 编译 Linux 内核 , 执行 make menuconfig 配置菜单命令 , 报如下错误 : root@ubuntu:~/kernel/lin ...
最新文章
- 力邀安卓为鸿蒙效力,期末阅读题答题秘籍2
- ubuntu9.10硬盘安装记录一
- Kaggle知识点:数据分布不一致的验证
- jsp页面textarea中换行替换问题
- 【hadoop】1.简介
- SAP CRM WebClient UI和Hybris Commerce的懒加载机制
- 【1】MySQL的四种事务隔离级别
- Python Email发送,通知业务完成
- Web全栈架构师到底会些啥?凭什么年薪30万以上?
- php oop基础,php面向对象编程(oop)基础
- 需要学习的技术知识备忘录
- dialog问题记录
- Django ORM模型一对一、一对多、多对多的操作详解
- 简单创意的思维导图怎么画
- [内核安全4]内核态Rootkit之IDT Hook
- AI算法,又整新活!萌妹子来挑战~
- ffmpeg 合并视频 添加字幕 bat命令
- JAVA复健DateNote.001
- opencv-python简易文档(三)图像处理算法
- 在jcreator中一直显示 Error,:,Invalid,path,,