zoukankan      html  css  js  c++  java
  • shell script

    shell script

    shell script 是利用shell功能写的一个“程序”,可以用来方便管理主机

    shell script 编写的注意事项:

    1.命令的执行时从上往下,从左往右;

    2.命令、参数间的多个空白会被忽略

    3.如果读取到Enter符号(CR),就尝试开始执行该行(或该串)命令

    4.如果一行内容太多,可以使用"[Enter]"来扩展至下一行

    5.#可以作为注释

    如何执行shell script,假设有一个/home/shell.sh 的文件

    1. 直接执行命令:shell.sh 文件必须要具备可读和可执行(rx)权限,然后

    • 绝地路径:使用 /home/shell.sh 来执行命令
    • 相对路径:切换工作目录到/home, 然后使用  ./shell.sh 来执行
    • 变量PATH功能: 将shell.sh 放到PATH制定的目录内

    2. 以bash 进程来执行:bash shell.sh

    3. 以source 来执行: source shell.sh

    第1、2种方式运行script时,会产生一个子进程,并在子进程中运行script,script中任何设置都不会影响当前所在进程

    第3种方式运行script,其实就是在当前进程中运行

    编写第一个script

    1 #!/bin/bash
    2 # this is my first Linux script
    3 echo "Hello World!"
    4 exit 0

    第一行 #!/bin/bash 很重要,必须有。它指明了在这个文件内的语法使用bash的语法。当这个程序被执行时,它能够加载bash的相关环境配置文件,并且执行bash来使我们下面的命令能够执行

    第二行是注释

    第三行是程序主体,echo 表示在控制台打印

    第四行不是必须的,但是有这种用法:我们可以使用exit这个命令来中断程序,并且传回一个数值给系统,若接着执行echo $?则可得到0的值。 哈哈,那么我们就可以通过exit n 来自定义错误信息了。

     一些简单范例

    1.

    1 #!/bin/bash
    2 #
    3 # user input his firstname and last name ,then print them in console
    4 #
    5 
    6 read -p "Please input your first name: "    firstName  #提示用户输入
    7 read -p "Please input your las name: "      lastName
    8 echo "Your full name is :$firstName $lastName"

    第6、7行提示用户输入,然后把输入的值分别存入变量firstName和lastName

    第8行输出

    2.

    1  #!/bin/bash
    2  #以用户输入为前缀, 当天日期为后缀新建一个文件
    3 read -p "Please input prefix :" file
    4 fileName=${file:-"fileName"}         #如果file为空,那么 fileName变量赋值字符串“fileName”
    5 date1=$(date +%Y%m%d)               #注意$(..)的用法,意为执行括号里的命令,返回
    6 file1=${fileName}${date1}            #连接字符串
    7 touch "$file1"                          #新建文件

    3.

    1 #!/bin/bash
    2 # 计算和
    3 a1=2
    4 a2=3
    5 echo $((a1+a2))     #计算可以通过 $(( ... ))的方式
  • 相关阅读:
    线程池:第一章:线程池的底层原理
    实战:第一章:防止其他人通过用户的url访问用户私人数据
    java程序报错:Unable to open debugger port (127.0.0.1:63959): java.net.SocketException "socket closed",编译过来就是无法打开调试器端口,套接字已关闭
    面试:第十三章:中高级程序员面试
    队列:第一章:阻塞队列
    我的分享:第三章:SpringCould五大组件
    Linux系统:第十章:服务器环境搭建
    深入理解JUC:第六章:Semaphore信号灯
    编写高质量JS代码的68个有效方法(十三)
    前端构建之gulp与常用插件
  • 原文地址:https://www.cnblogs.com/formyjava/p/4214476.html
Copyright © 2011-2022 走看看