1.2 位于Shell脚本第一行的#!

学习《shell脚本学习指南》一书,记录总结,便于自己回忆,希望对你有帮助! 2.4 自给自足的脚本:位于第一行的 #!

1.Shell脚本执行过程

  当Shell执行一个程序时,会要求UNIX内核启动一个新的进程,以便在该进程里执行所指定的程序。

内核知道如何为编译型程序做这件事。但Shell脚本并非编译型程序;当Shell要求内核执行它时,内核将无法做这件事。

内核会告诉Shell这个我解决不了,接着Shell就会启动一个新的 /bin/sh(标准Shell)副本来执行该程序。

2.为什么Shell脚本要加 #!

  现行的UNIX系统都会拥有好几个Shell,通过哪一种Shell去运行脚本,我们需要告知UNIX内核。这样做有助于执行机制通用化,

让用户得以直接引用任何的程序语言解释器,而并非一个命令Shell。

3.如何设置 #!

方法就是,通过在脚本文件中第一行设置:#! 符号

[[email protected] test]# vim nusers
#! /bin/sh -  当没有Shell选项时,建议写为 "-"who | wc -l

4.避免几个初级陷阱

  1. #!这一行的长度有限制,系统不同限制从63到1024个字符不等
  2. 不在选项之后放置任何空白,空白会更这选项传递给引用的程序
  3. 你需要知道解释器的完整路径名称。

  

原文地址:https://www.cnblogs.com/benefitworld/p/11559516.html

时间: 2024-10-06 13:01:15

1.2 位于Shell脚本第一行的#!的相关文章

shell脚本第一课

shell脚本的文件名一般是以.sh结尾,也可以以其他格式如.txt,甚至不加后缀. 脚本的第一行的#!/bin/bash表示指定脚本执行时的解析器. #!/bin/bash #文件名:test.sh #除了第一行的井号表示脚本执行的解析器 #其他的井号均表示注释 echo "aaaaaaaaaaaaaaa" echo "BBBBBBBBBBBBBBBB" #echo "ccccccccccccccc" echo "dddddddddd

shell脚本命令行参数里的空白符

看一个小脚本 #!/bin/bash #demonstarting the shift command count=1 while [ -n "$1" ] ; do echo "Parameter #$count=$1" count=$[ $count + 1 ] shift done echo echo 这个脚本首先测试第一个参数是否存在 -n "$1" ,存在的话打印,然后所有参数向左移动一个位置,变量$1的值会被覆盖,变量$0(也就是程序名

shell脚本按行读取文件内容的方法

方法1: exec <file sum=0 while read line;do cmd done 方法2: cat ${FILE_PATH} |while read line do cmd done 方法3: while read line do cmd done<FILE

shell脚本学习第一课

shell是一种程序设计语言,是访问操作系统内核的服务. Linux的shell种类常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) Shell for Root(/sbin/sh) Shell脚本执行的两种方法 ./shell.sh 根据shell脚本第一行指定的shell执行 /bin/sh test.sh 根据命令

shell脚本 入门 —— 符号篇

shell Shell就是一个命令行解释器,它的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive). Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一 个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲 命令.Shell脚本和编程语言很相似,也有变量和流程控制语句,包括循环和分支.但Shell脚本是解释执行的,不需 要编译,Shell程序从脚本中一行一行读取

如何编写shell脚本

1.首先创建一个目录 vi hello.sh 2.编写shell第一行 #!/bin/bash    (为了声明是shell脚本,第一行都要这么写) 3.可以添加注释     #the first program (加#的这一行是不生效的) 4.写脚本     echo "hello world" 5.执行脚本,    赋予执行权限: chmod u+x hello.sh   或 chmod 755 hello.sh 执行脚本: ./hello.sh 或者  直接 bash hello

简单介绍linux中的shell脚本

一.shell基本介绍 Shell就是一个命令行解释器,它的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式. Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令.Shell脚本是需要解释执行的,不需要编译,Shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到Shell提示符下执行.作为程序设

shell脚本之基础语法

Shell脚本定义脚本名称:尽量做到观其名,明其意了解脚本大概是写什么的首行内容:#!/bin/bash,#!又称为shebang,/bin/bash是告诉解释器用的哪一个shell.shell脚本第一行必须这样写Shell脚本之条件测试分为三类类型为:整数测试:字符测试:文件测试测试的表达式为:[ 表达式 ] :为命令测试:[[ 表达式 ]]:为关键字测试Test 表达式:使用test命令进行测试:注意:[ 表达式 ]和[[ 表达式 ]]两边必须有空格,要不就报错误: Shell中真表示为tr

Hadoop初级之shell脚本

Shell脚本   Shell就是一个命令行解释器,它的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive). Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一 个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令.Shell脚本和编程语言很相似,也有变量和流程控制语句,包括循环和分支.但Shell脚本是解释执行的,不需 要编译,Shell程序从脚本中一行一