Shell基本语法

2018-12-29  本文已影响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种:

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 特殊变量及其含义

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.字符串截取

14.数组的删除

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

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

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

16.获取数组的长度

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

猜你喜欢

热点阅读