#!bin/sh是啥

第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本,比如说/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选项并且你工作的环境还算安静,你在得到上面的结果的时候也应该听到清脆的终端响铃。但这种程序是毫无作用的。

时间: 2024-08-24 15:43:39

#!bin/sh是啥的相关文章

Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别

一.意思 #!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径. 其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本. 比如说/bin/csh脚本,/bin/perl脚本,/bin/awk脚本,/bin/sed脚本,甚至/bin/echo等等. #!/bin/bash同理. 二.区别 GNU/Linux操作系统中的/bin/sh本是bash (Bourne-Again

坑爹的ubuntu /bin/sh

写了一个停止mongodb的脚本,代码片段如下: 1 #!/bin/bash 2 3 # stop mongo 4 echo "stop mongodb..." 5 MONGO_PID=`ps -ef | grep mongod | grep -v grep | awk '{print $2}'` 6 if [[ a${MONGO_PID} == a'' ]] 7 then 8 echo "mongodb is not running..." 9 else 10 k

ubuntu下code::blocks无法编译 /bin/sh: 1: g++ not found 解决办法

linux下code::blocks无法编译运行提示 /bin/sh: 1: g++ not found 的解决办法 在ubuntu 12.04 软件中心中选装了codeblocks,安装完成后却连最简单的hello world 都无法编译运行. 编译时提示 /bin/sh: 1: g++: not found 运行时总提示 It seems that this file has not been built yet. Do you want to build it now? 因为系统没有装C+

linux:执行脚本出现/bin/sh^M: bad interpreter: No such file or directory

问题出在^M,原因是脚本文件的编码格式是dos,有可能是我在window下编辑完了直接传到linux的结果,可以在vim中输入以下命令确认编码格式 :set ff //可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看. 也可以在命令行中用dos2unix指令转换编码 #dos2unix filename linux:执行脚本出现/bin/sh^M: bad interpreter: No suc

CentOS7 crontab 不执行,报错 /bin/sh: root: command not found

使用CentOS7 执行定时脚本,结果提示报错: /bin/sh: root: command not found 问题在于文件 /var/spool/cron/root ,中无需再写root. 修改之后的脚本: [[email protected] cron]# crontab -l */10 * * * * perl /home/awstats/wwwroot/cgi-bin/awstats.pl -update -config=www.zbphp.com >> /sbin/null 2&

-bash: ./job.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录

昨天在windows下用写字板写了个shell脚本,使用winscp上传到linux上运行的时候发现运行不了,提示-bash: ./job.sh: /bin/sh^M: bad interpreter: 没有那个文件或目录,经过查找资料发现原因如下: 1.dos格式的文本文件要转换为unix格式的文本文件,在linux上操作如下:#unix2dos job.sh 2.或者vi job.sh set ff=unix wq! 保存退出后就可以运行.

ansible执行shell模块和command模块报错| FAILED | rc=127 >> /bin/sh: lsof: command not found和| rc=2 >> [Errno 2] No such file or directory

命令: ansible -i hosts_20 st  -m shell -a 'service zabbix_agentd star'  -K --become ansible -i hosts_20 st  -m shell -a 'lsof -i:10050'  -K --become 在shell模块报错:| FAILED | rc=127 >>/bin/sh: lsof: command not found 在command模块报错:| rc=2 >>[Errno 2]

交叉编译环境以及开发板上-/bin/sh: ./hello: not found(使用arm-linux-gcc -static -o 来进行静态编译)

目标板是S3C2440.至于交叉编译环境的搭建就不多说了,网上很多教程. 搭建好了交叉编译环境后,第一件事就是传说中的”Hello,World!”. 一. 主机编译环节 我使用的系统是ubuntu10.04,搭建好交叉编译环境后,终端输入arm-linux-gcc -v能够正常显示版本信息,但是输入sudo arm-linux-gcc -v后却显示命令无法找到. 我试过很多种方法,比如sudo -s切换到root后,编辑$PATH,将编译器路径加入.然后exit到普通用户.仍然不能执行sudo

解决编译时提示/bin/sh: 1: /home/**/custom_app.sh: Permission denied错误

出现如下错误,一般是执行权限不够. /bin/sh: 1: /home/custom_app.sh: Permission denied 解决方法是:cd 到此文件目录,对提示的文件赋予可执行权限或读写权限,我这里提示的是custom_app.sh,所以我就给它赋予权限即可. chmod a+x custom_app.sh

【REACT NATIVE 系列教程之十】真机运行报错COMMAND /BIN/SH FAILED WITH EXIT CODE 1 的解决方法

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2315.html Himi最近在真机运行遇到  Command /bin/sh failed with exit code 1  的错误, 模拟器运行没有任何问题.此问题已解决,这里分享下解决方案. 先来看下错误日志,如下图: 主要是划线的部分: 1.PhaseScriptExecution Bundle\ Reac