`

面试被问了:linux的shell编程中#!/bin/sh和$bash是什么意思

阅读更多



#! /bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。

$bash $表示系统提示符,$ 表示此用户为普通用户,超级用户的提示符是#。

bash是shell的一种,是linux下最常用的一种shell。

$bash的意思是执行一个子shell,此子shell为bash。



要注意,在每个脚本的开头都使用"#!",这意味着告诉你的系统这个文件的执行需要指定一个解 释器.#!实际上是一个2字节[1]的魔法数字,这是指定一个文件类型的特殊标记, 换句话说, 在 这种情况下,指的就是一个可执行的脚本(键入man magic来获得关于这个迷人话题的更多详细 信息).在#!之后接着是一个路径名.这个路径名指定了一个解释脚本中命令的程序,这个程序可 以是shell,程序语言或者是任意一个通用程序.这个指定的程序从头开始解释并且执行脚本中 的命令(从#!行下边的一行开始),忽略注释.[2] 如: 1 #!/bin/sh 2 #!/bin/bash 3 #!/usr/bin/perl 4 #!/usr/bin/tcl 5 #!/bin/sed -f 6 #!/usr/awk -f

注意: #! 后边给出的路径名必须是正确的,否则将会出现一个错误消息,通常是 "Command not found",这将是你运行这个脚本时所得到的唯一结果.

如果在脚本的里边还有一个#!行,那么bash将把它认为是一个一般的注释行.
分享到:
评论

相关推荐

    02-SHELL编程之流程控制和循环语句

    /bin/bash # Name:ping.sh # Path:/shell02/ # Usage:/shell02/ping.sh # ... #获取远程主机的IP地址(定义变量让用户自己输入) read -p "请输入你要ping的远程主机IP:" IP #使用ping命令来判断是否和远程主机互通...

    Shell脚本bash: ./t.sh:/bin/bash^M:损坏的解释器: 没有那个文件或目录

    主要介绍了Shell脚本bash: ./t.sh:/bin/bash^M:损坏的解释器: 没有那个文件或目录,需要的朋友可以参考下

    输出执行操作和打印日志的shell脚本实例

    /bin/bash #log function ####log_correct函数打印正确的输出到日志文件 function log_correct () { DATE=`date “+%Y-%m-%d %H:%M:%S”` ####显示打印日志的时间 USER=$(whoami) ####那个用户在操作 echo “${DATE...

    Linux Shell 脚本编程入门教程

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度...Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K She

    Shell中调用、引用、包含另一个脚本文件的三种方法

    脚本 first (测试示例1) first#!/bin/bashecho ‘your are in first file’ 方法一:使用source .../bin/bashecho ‘your are in second file’sh first 您可能感兴趣的文章:判断文件是否存在的shell脚本代码Sh

    5个实用的shell脚本面试题和答案

    这边提到的5个面试问题,延续之前的有关Linux面试问题和答案。如果你是Tecmint的读者,你的支持我非常感谢。 1. 写一个shell脚本来得到当前的日期,时间,用户名和当前工作目录。 答案 : 输出用户名,当前日期和时间...

    bash基础用法.docx

    bash shell 核心中心就是调用指令(堆命令,严重依赖当前环境) shell脚本:文本文件 约定俗成要以.sh为结尾 结构和格式 shebang #!/bin/bash 脚本声明 脚本的概念 将要执行的命令按照顺序保存到一个文本中 给...

    Linux Crontab Shell脚本实现秒级定时任务的方法

    一、编写Shell脚本crontab.sh #!/bin/bash step=1 #间隔的秒数,不能大于60 for (( i = 0; i < 60; i=(i+step) )); do $(php '/home/www/php/crontab/crontab.php') sleep $step done exit 0 二、crontab -e ...

    shell脚本执行方式

    一个规范的Shell脚本在第一行会指出由哪个程序(解释器)来执行脚本中的内容,这一行内容在Linux bash的编程一般为: #!/bin/bash 或 #!/bin/sh 注意 在Shell中如果一行的第一个字母是#,则是注释,但是上面两个...

    shell脚本:一键配置本地yum源仓库

    /bin/bash #date:2020-2-20 #描述:一键配置本地yum源仓库 echo [正在检测是否挂载磁盘----------] mount /dev/cdrom /mnt &> /dev/null cd /mnt/Packages/ if [ $? -eq 0 ] then echo 已将系统安装光盘挂载至/...

    详解shell中脚本参数传递的两种方式

    方式一:$0,$1,$2.. .../bin/bash echo 脚本$0 echo 第一个参数$1 echo 第二个参数$2 在shell中执行脚本,结果如下 $ ./test.sh 1 2 #shell中将会输出: 脚本./test.sh 第一个参数1 第二个参数2 1.2 下面是参

    获取shell脚本自身所在目录的Shell脚本分享

    前几天写的七牛的参赛demo,用bash写了一个便捷安装的脚本,涉及到了路径相关的判断,从stackoverflow,加上自己的实践整理一下。 简单版 下面是一个最简单的实现,可以解决大多数问题,缺陷是对于软链接显示的是软...

    shell脚本实现磁盘监控系统

    /bin/bash #Author:GaoHongYu #QQ:1061767621 #Time:2019-12-24 18:43:22 #Name:ncjk.sh #Version:V1.0 clear xtip=$(hostname -I) cprl=$(df -Th |head -2|tail -1|cut -d -f 10) cpky=$(df -Th |head -2|tail -1|...

    windows下写的shell脚本在linux执行出错的解决办法

    在Windows下写了一个shell脚本,上传到Linux下执行时报错: 代码如下:[root@localhost test]# ./test.sh -bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory test.sh源码: 代码如下:#!/bin...

    Linux/Unix shell 脚本监控磁盘可用空间

    Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少。下面是给出的一个监控磁盘空间空间shell脚本的样本,供大家参考。  1、监控磁盘的空闲空间shell脚本 robin@SZDB:~/dba_scripts/...

    touch shell脚本并修改为777权限的方法

    mksh.sh #!/bin/bash for i in $@ do touch ${i} chmod 777 ${i} echo #!/bin/bash>${i} done mkcpptest.sh #!/bin/bash for i in $@ do touch ${i} echo '#include #include using namespace std; int main...

    linux shell编程

    用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。 程序实现以及注释如下: #! /bin/bash #cp.sh

    shell j脚本

    Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 ...

Global site tag (gtag.js) - Google Analytics