Shell编程--shell介绍

shell

shell 操作系统为用户(特别是程序员)提供的命令接口。它实际上是一个解释器,如linux下面的bash。

查看当前的shell程序

zhangpeng@pikathu:~$ echo $SHELL
/bin/bash

进一步查看bash

zhangpeng@pikathu:~$ ls -l /bin/bash 
-rwxr-xr-x 1 root root 1113504 Apr  5  2018 /bin/bash

关于ls指令的详细内容的参考

ls -a:显示所有的文件包括目录文件

ls -l:显示用户权限等详细信息

ls -al:两者的结合版

编写第一个shell脚本

zhangpeng@pikathu:~/Desktop$ mkdir shellTest
zhangpeng@pikathu:~/Desktop$ cd shellTest/
zhangpeng@pikathu:~/Desktop/shellTest$ gedit hello.sh
zhangpeng@pikathu:~/Desktop/shellTest$ chmod +x ./hello.sh 
zhangpeng@pikathu:~/Desktop/shellTest$ ./hello.sh

显示:

hello

用下面三种方式也可以得相同的结果,会在会面章节进行介绍。

zhangpeng@pikathu:~/Desktop/shellTest$ bash ./hello.sh 
hello
zhangpeng@pikathu:~/Desktop/shellTest$ source ./hello.sh 
hello
zhangpeng@pikathu:~/Desktop/shellTest$ . ./hello.sh 
hello

执行脚本并显示脚本内容

修改hello.sh内容如下:

#!/bin/bash -v
# hello.sh
echo "hello"

执行结果:

#!/bin/bash -v
# hello.sh
echo "hello"
hello

奇妙之处在于:

#!/bin/bash -v # “#!”后面的指令告诉操作系统我们使用解释器及其参数。

此方法只在下面的指令执行时才起效。

./hello.sh 

而执行下面三种方法无效,如下所示:

zhangpeng@pikathu:~/Desktop/shellTest$ bash hello.sh 
hello
zhangpeng@pikathu:~/Desktop/shellTest$ source hello.sh 
hello
zhangpeng@pikathu:~/Desktop/shellTest$ . hello.sh 
hello

       这是因为在命令执行./hello.sh 时,操作系统不知道我们用哪一个解释器,于是便会用系统的解释器去运行,读到第一行#! 指令后,便使用bash执行,并把相应的参数传递给bash,而在后来的三种方式执行时,实际上使用相应的三种解释程序(bash,source, . )来执行,他们的语法中将忽略#!指令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值