• shell编程基础


    本文主要对shell中基本的语法进行简要记录,以备查用!

    1、shell变量

    在定义变量名时不加美元符号$,只在使用变量时需要在变量名前添加美元符号。如

    1 name=”lw”
    2 echo ${name}     #或者$name,但建议加上大括号

    注:在对变量进行赋值时,等号“=”的两边不能有空格

    变量的命名遵循一下规则:

      1)首个字符必须为字母(a-zA-Z)。

      2)中间不能有空格,可以使用下划线(_)。

      3)不能使用标点符号。

      4)不能使用bash里的关键字(可用help命令查看保留关键字)。

    2、shell字符串

    shell的字符串可以使用单引号或者双引号。但这两种引号在使用的过程中有些区别。

    1)单引号:单引号中的字符串主要存在两个限制:单引号中的变量是无效的;单引号字串中不能出现单引号(对单引号使用转义符后也不行)。总之一句话,单引号里的任何字符都会原样输出。

    2)双引号:双引号没有单引号的那些限制,可以输出变量,也可以使用转义字符。

    如:

    1 course=”python”
    2 echo “the course is: ${course}”

    3)字符串的其他操作

    1 first=”hello”
    2 last=”python”
    3 #字符串的拼接
    4 newStr=“${first}, ${last}”
    5 newStr=${first}“, ”${last}
    6 #获取字符串的长度
    7 len=${#first}
    8 #提取子字符串
    9 subStr=${first:0:5}

    3、shell数组

    数组定义:array=(value1, value2, value3, valuen)

    如:

    1 course=(‘python’, ‘shell’, ‘perl’)
    2 val1=${course[1]}     #获取course[1]中的数据
    3 echo ${course[@]}        #输出数组中的全部值

    4、if,for,while语句

    数值比较操作: 

    -eq: 等于    -ne:不等于

    -gt:大于    -ge:大于等于

    -lt:小于     -le:小于等于

    假如: num1=${2*6}    num2=${12} 

    1if语句

    1 if test ${num1} -eq ${num2}
    2 then
    3   echo “equal”
    4 elif test ${num1} -gt ${num2}
    5   echo “num1 bigger than num2”
    6 else
    7   echo “num1 less than num2”
    8 fi

    2)for语句

    1 #for i in `seq 10`            #输出1~10
    2 for i in 3 4 5 6            #输出3 4 5 6
    3 do
    4   echo $i
    5 done

    3)while语句

    1 while :
    2 do
    3   echo ”hello”
    4 done
    5 4)until语句
    6 until condition
    7 do
    8   command
    9 done

    5、shell函数

    比如加法函数:

    1 add(){
    2     echo '$1:'$1', $2:'$2
    3     return $(($1+$2))
    4 }
    5 add 3 4
    6 echo "the sum is: $?"

    几个特殊的字符含义:

    $#:传递到脚本的参数个数

    $*:以一个单字符串显示所有向脚本传递的参数

    $$:脚本运行的当前进程ID

    $!:后台运行的最后一个进程的ID

    $@:与$#相同,但是使用时加引号,并在引号中返回每个参数。

    $-:显示Shell使用的当前选项,与set命令功能相同。

    $?:显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

     

    参考链接:

    http://www.w3cschool.cc/linux/linux-shell-func.html

  • 相关阅读:
    函数
    2017-12-09 JavaScript实现ZLOGO子集: 测试用例
    2017-12-06 JavaScript实现ZLOGO子集: 单层循环功能
    2017-12-05 JavaScript实现ZLOGO子集: 前进+转向
    Python3选择支持非ASCII码标识符的缘由
    2017-12-04 编写Visual Studio Code插件初尝试
    2017-12-02 编程语言试验之Antlr4+JavaScript实现"圈4"
    2017-12-01 中英文代码对比之ZLOGO 4 & LOGO
    2017-11-28 在线编程网站对中文代码的支持
    中文编程兴起的可能途径
  • 原文地址:https://www.cnblogs.com/liuwu265/p/4108449.html
Copyright © 2020-2023  润新知