欢迎访问我的技术群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是什么意思了相关推荐

  1. linux运行不了.sh文件,linux下不能执行/bin/sh脚本的原因:command not found

    Linux下执行.sh脚本错误:bin/sh^M: bad interpreter: No such file or directory 原因是.sh脚本在windows系统下用记事本文件编写的.不同 ...

  2. 浅显易懂 Makefile 入门 (08)— 默认 shell (/bin/sh)、命令回显、make参数(-n 只显示命令但不执行,-s 禁止所有回显)、单行命令、多行命令、并发执行

    1. shell 相关 1.1 默认 shell Makefile 所使用的命令是由 shell 命令行组成,他们是一条一条执行的. 多个命令之间要使用分号隔开,Makefile 中的任何命令都要以 ...

  3. Ret2Libc(2) (有system、无‘/bin/sh’)绕过NX、ASLR

    和Ret2Libc(1)一样,先把程序扔进IDA看看代码 和Ret2Libc(1)一样,gets存在溢出漏洞 gdb-peda$ checksec CANARY    : disabled FORTI ...

  4. Ret2Libc(1) (有system、/bin/sh)绕过NX、ASLR

    Ret2Libc即控制程序执行libc库中的函数. 通常是返回到某个函数的plt处,或者函数运行时候的实际地址. 下面是一个例子: 可以看出程序gets有一个明显的溢出漏洞 gdb-peda$ che ...

  5. Compiling: main.cpp /bin/sh: g++: not found

    Kbuntu用codeblocks编写C程序的时候,编译报错如下: Compiling: main.cpp /bin/sh: g++: not found 解决方法: sudo apt-get ins ...

  6. 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 ...

  7. 关于#!/bin/sh 和 #!/bin/bash 的差别

    在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本. 目前研发送测的shell脚本中主要有以下两种方式: (1) #!/bin/sh (2) #!/bin/bash 在这里求教同福客 ...

  8. bash、dash(/bin/bash和/bin/sh)

    Linux中的shell有多种类型,其中最常用的几种是Bourne   shell(sh).C   shell(csh)和Korn   shell(ksh).三种shell各有优缺点.Bourne   ...

  9. 看完这篇文章之后,终于明白了编译到底怎么回事。

    看完这篇文章之后,终于明白了编译到底怎么回事. 1 对于同一个语句,有如下三种:高级语言.低级语言.机器语言的表示 C语言  a=b+1; 汇编语言  mov -0xc(%ebp),%eax add ...

  10. 【错误记录】编译 Linux 内核报错 ( /bin/sh: 1: bison: not found )

    文章目录 一.报错信息 二.解决方案 一.报错信息 编译 Linux 内核 , 执行 make menuconfig 配置菜单命令 , 报如下错误 : root@ubuntu:~/kernel/lin ...

最新文章

  1. 力邀安卓为鸿蒙效力,期末阅读题答题秘籍2
  2. ubuntu9.10硬盘安装记录一
  3. Kaggle知识点:数据分布不一致的验证
  4. jsp页面textarea中换行替换问题
  5. 【hadoop】1.简介
  6. SAP CRM WebClient UI和Hybris Commerce的懒加载机制
  7. 【1】MySQL的四种事务隔离级别
  8. Python Email发送,通知业务完成
  9. Web全栈架构师到底会些啥?凭什么年薪30万以上?
  10. php oop基础,php面向对象编程(oop)基础
  11. 需要学习的技术知识备忘录
  12. dialog问题记录
  13. Django ORM模型一对一、一对多、多对多的操作详解
  14. 简单创意的思维导图怎么画
  15. [内核安全4]内核态Rootkit之IDT Hook
  16. AI算法,又整新活!萌妹子来挑战~
  17. ffmpeg 合并视频 添加字幕 bat命令
  18. JAVA复健DateNote.001
  19. opencv-python简易文档(三)图像处理算法
  20. 在jcreator中一直显示 Error,:,Invalid,path,,

热门文章

  1. 常用颜色大全---RGB值及中英文名称
  2. android通过辅助功能收集数据
  3. 美柚:女性移动APP安全攻防战
  4. Grails in Action:完成啦
  5. linux 实现不同网段网络互通
  6. java 中文大写金额_金额数字转中文大写
  7. MATLAB的基本用法
  8. 努比亚Z5Smini刷机包 官方H125 音量唤醒 自启管理 CRT管理 稳定
  9. 用计算机KADIO算方差,KADIO_KD-82TL__计算器.ppt
  10. doctrine-orm基础(单用doctrine避坑指南)