⑴ 如何运行shell命令第一行为什么是# !/bin/sh
因为shell程序是解释执行的,所以不需要编译装配成目标程序,按照shell编程的惯例,以bash为例,程序的第一行一般为 “# !/bin/bash”,其中# 表示该行是注释,叹号“!”告诉shell运行叹号之后的命令并用文件的其余部分作为输入,也就是运行/bin/bash并让/bin/bash去执行shell程序的内容。 执行shell程序的方法有三种:1、sh shell程序文件名 这种方法的命令格式为: bash shell程序文件名 这实际上是调用一个新的bash命令解释程序,而把shell程序文件名作为参数传递给它。新启动的shell将去读指定的文件,执行文件中列出的命令,当所有的命令都执行完结束。该方法的优点是可以利用shell调试功能。 2、sh<shell程序文件名 格式为: bash<shell 程序文件名 这种方式就是利用输入重定向,使shell命令解释程序的输入取自指定的程序文件。 3、用chmod命令使shell程序成为可执行的 一个文件能否运行取决于该文件的内容本身可执行且该文件具有执行权。对于shell程序,当用编 辑器生成一个文件时,系统赋予的许可权限都是644(rw-r-r--),因此,当用户需要运行这个文件时, 只需要直接键入文件名即可。 在这三种运行shell程序的方法中,最好按下面的方式选择:当刚建立一个shell程序,对它的正确性还没有把握时,应当使用第一种方式进行调试。当一个shell程序已经调试好时,应使用第三种方式把它固定下来,以后只要键入相应的文件名即可,并可被另一个程序所调用。
⑵ shell grep 的结果只取第一行
可以使用head -1 命令来只取grep到的数据的第一行。
例如一个文本文档a.txt内容是:
北京是我们的首都
北京天安门坐落在中华人民共和国首都北京市的中心
我在北京天安门广场吃炸鸡
使用命令 cat a.txt |grep 北京 | head -n 1 可以只取到第一行的数据北京。
(2)linuxshell第一行扩展阅读
Linux中head命令详解:
head命令与tail命令用法相似,head命令用于查看文档的开始指定数量的字符块,默认显示文档的前 10 行,如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。
1、grep命令用法格式
head 【参数】【文件】
2、命令选项
-c, --bytes=[-]K k,显示文档开始的前k个字节,-k,不显示文档结尾的最后 k 个字节
-n, --lines=[-]K k,显示文档开始的前k行,-k,不显示文档结尾的最后 k 行
-q, --quiet, --silent 不显示包含给定文件名的文件头
-v, --verbose 总是显示包含给定文件名的文件头
--help 显示此帮助信息并退出
--version 显示版本信息并退出
3、实例
#显示前5行
head -n 5 head.txt
#显示前5个字节
head -c 5 head.txt
⑶ 在linux的shell编程中如何截取一段命令返回值的第一行
ifconfig eth0|grep eth0|awk '{print $5}' |head -1
head命令是取输入的流的头部,可以指定行数
tail命令是取输入的流的尾部
⑷ linux shell脚本执行命令详解
在Linux下,如果你需要执行shell脚本,那么应该使用那个命令呢?下面由我为大家整理了linux shell脚本执行命令的相关知识,希望对大家有帮助!
linux shell脚本执行
linux shell脚本执行方法一: 切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:
cd /data/shell
./hello.sh
./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。
linux shell脚本执行方法二: 以绝对路径的方式去执行bash shell脚本:
/data/shell/hello.sh
linux shell脚本执行方法三: 直接使用bash 或sh 来执行bash shell脚本:
cd /data/shell
bash hello.sh
或
cd /data/shell
sh hello.sh
注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊。
linux shell脚本执行方法四: 在当前的shell环境中执行bash shell脚本:
cd /data/shell
. hello.sh
或
cd /data/shell
source hello.sh
前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。