Shell之程序化脚本

1、Shell的第一个程序

  • 1.1 新建一个文本文件,并命名为 test.sh。
    sh是后缀名,只是便于识别这是shell脚本文件,牢记这个跟window文件后缀是有本质区别的。Linux系统运行文件是看它是否有权限,而不是看格式。例如,文件名去掉后缀,重名成test,也是可以的。只是不便于你识别这是shell文件
[root@VM_0_6_centos ~]# touch test.sh 
  • 1.2 编写文件内容
    [root@VM_0_6_centos ~]# vim test.sh
    # 编写test.sh中的文件内容
      1 #! /bin/bash                                                                                                                        
      2 #跟世界说Hello world
      3 
      4 echo "Hello world"
    
    第一行代码是指定代码解释器1来执行代码,#!是约定标记
    第二行代码是注释

2、执行Shell脚本

  • 2.1新开线程执行脚本

      ```powershell
      [root@VM_0_6_centos ~]# ./test.sh   #linux系统中,执行一个文件是看它是否x执行权限,跟window系统有很大区别,window系统是有文件格式的exe、bat等等
      Hello world
      [root@VM_0_6_centos ~]# test.sh
      bash: test.sh: command not found
      [root@VM_0_6_centos ~]# /bin/bash test.sh #指定解释器运行脚本,这种方式不需要脚本第一行指定解释器
      Hello world
      [root@VM_0_6_centos ~]# bash test.sh #指定解释器运行脚本,这种方式不需要脚本第一行指定解释器
      Hello world
      ```
      肯定有人疑惑第一条命令多了./,如果少了这个相对路径,Shell会认为是命令,然后去PATH变量中的路径寻找程序,最后会出现命令找不到,请看第二条命令执行的例子。
      那为何说这个是新开进程来执行的?我们都知道一个进程对应一个PID。那我们写一个Shell脚本,查看当前运行的PID
      #! /bin/bash
      #查看当前运行进程的PID
      echo $$
    
    
      ```powershell
      #新建一个Shell脚本,输出当前进程PID,然后执行
      #Shell脚本,文件名checkPID 
      [root@VM_0_6_centos ~]# ./checkPID 
      26417
      [root@VM_0_6_centos ~]# ./checkPID 
      26418
      [root@VM_0_6_centos ~]# echo $$
      9740
      [root@VM_0_6_centos ~]# echo $$
      9740
    
      ```
      从上可以发现,每次脚本执行都不一样。并且跟当前运行的Shell(PID=9740)进程PID不一样。
    
  • 2.2 在当前线程执行脚本

    source 命令会强制读取文件,依次执行脚本文件中的全部命令,而忽略脚本文件的权限。

      ```powershell
      [root@VM_0_6_centos ~]# source test.sh
      Hello world
      ```
      简写“.”
      ```powershell
      [root@VM_0_6_centos ~]# . test.sh
      Hello world	
      ```
    

  1. Shell是解释型语言 ↩︎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值