美文网首页
Shell基本语法

Shell基本语法

作者: 风中尘埃飘过 | 来源:发表于2018-12-29 17:04 被阅读0次

1.read 让用户输入 并读取用户输入的数据

echo "请输入名字:"
read Name
echo "你的名字:$Name"

2.使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

3.使用 unset 命令可以删除变量。
语法:

unset variable_name

变量被删除后不能再次使用;unset 命令不能删除只读变量。

4.以单引号' '包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令(命令需要反引起来)也会把它们原样输出。这种方式比较适合定义显示纯字符串的情况,即不希望解析变量、命令等的场景。

以双引号" "包围变量的值时,输出时会先解析里面的变量和命令,而不是把双引号中的变量名和命令原样输出。这种方式比较适合字符串中带有变量和命令并且想将其解析后再输出的变量定义。
例如:

Name="小明"
text='你的名字:$Name'
text1="你的名字:$Name"
echo $text  //你的名字:$Name
echo $text1  //你的名字:小明

5.Shell的变量分为3种:

  • 环境变量:能在其他shell使用
  • 全局变量:只能在当前shell使用
  • 局部变量:只能在当前方法使用

6.local关键字就相当于把变量的作用域限制在了当前方法中 将变量变成了局部变量
7.export关键字 将一个变量变成环境变量 通过export命令导出的环境变量是临时的,关闭 Shell 会话后它就销毁了。所以,这种环境变量也只是在局部范围内起作用,并不影响所有 Shell
8.给脚本文件传递位置参数 方法传参数跟文件传递位置参数是一样的

$ test.sh Shell http://c.biancheng.net/shell

//脚本的名字:test.sh
echo "Language: $1" //Shell
echo "URL: $2" // http://c.biancheng.net/shell

  1. Shell 特殊变量及其含义
  • $0 当前脚本的文件名。
  • $n(n≥1) 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 $1,第二个参数是 $2。
  • $# 传递给脚本或函数的参数个数。
  • $* 传递给脚本或函数的所有参数。
  • $@ 传递给脚本或函数的所有参数。
  • $? 上个命令的退出状态,或函数的返回值。
  • $$ 当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID。

10."$*"和"$@"的区别

#!/bin/bash
echo "print each param from \"\$*\""
for var in "$*"
do
    echo "$var"
done
echo "print each param from \"\$@\""
for var in "$@"
do
    echo "$var"
done

$ sh test.sh a b c d

运行结果:
print each param from "$*"
a b c d
print each param from "$@"
a
b
c
d

11.Shell 中获取字符串长度 具体方法如下:

str="this is string"
echo ${#str}
运行结果:
15

12.字符串的拼接 直接写在一起就能实现拼接
13.字符串截取

  • ${string: start :length} 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
  • ${string: start} 从 string 字符串的左边第 start 个字符开始截取,直到最后。
  • ${string: 0-start :length} 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。
  • ${string: 0-start} 从 string 字符串的右边第 start 个字符开始截取,直到最后。
  • ${string#*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
  • ${string##*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
  • ${string%*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
  • ${string%%*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。

14.数组的删除

unset arr[1] //删除小标为1的元素

15.数组的拼接跟字符串的拼接类似

array_new=(${array1[@]}  ${array2[@]}) //@ 或者 * 都是指获取数组的全部元素
array_new=(${array1[*]}  ${array2[*]})

16.获取数组的长度

${#nums[*]} //获取数组的长度

相关文章

  • Shell基本语法

    脚本Demo:Github地址 1、条件测试:test [命令test或[可以测试一个条件是否成立;一个指令的执行...

  • shell基本语法

    学习做的笔记,以防日后忘记方便查询?***********shell基本语法***********

  • shell 基本语法

    shell 基本语法 jenkins 上构建项目时,经常需要借助 shell 脚本,最近也经常跟服务器打交道,顺便...

  • shell 基本语法

    本节所讲内容:shell 基本语法变量表达式判断语句if表达式 先看一个简单的shell程序[root@xuego...

  • shell基本语法

  • shell基本语法

    shell脚本的执行方式 定义变量 将命令的返回值赋给变量 设置环境变量 位置参数变量 预定义变量 运算符 条件判...

  • Shell基本语法

    1.read 让用户输入 并读取用户输入的数据 2.使用 readonly 命令可以将变量定义为只读变量,只读变量...

  • 9.Linux基本命令操作

    目录: • Linux终端介绍 Shell提示符 Bash Shell基本语法。• 基本命令的使用:ls、pw...

  • 第三章-Linux基本命令操作

    本节所讲内容: 3.1 Linux中断介绍Shell提示符 Bash Shell基本语法 3.2 基本命令的使...

  • MongoDB 条件查询 --- 2022-04-03

    本章通过mongo shell介绍,MongoDB的基本查询语法,mongo shell中提了db.collect...

网友评论

      本文标题:Shell基本语法

      本文链接:https://www.haomeiwen.com/subject/indplqtx.html