Shell教程

他人教程
基础变量:
基本变量知识

定义变量:
var=123   //等号两边不能有空格,即使对变量二次赋值,也不能加$号

使用变量:
$var
${var}   //加不加{}无所谓,但有时可以区分变量名的边界,如:
"I am ${var}Script."

只读变量:
readonly var

删除变量:unset 命令不能删除只读变量。
unset var

字符串:

单引号字符串的限制:
	单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
	单引号字串中不能出现单独一个的单引号,但可成对出现,作为字符串拼接使用。
双引号的优点:
	双引号里可以有变量
	双引号里可以出现转义字符
str="Hello, I know you are \"$your_name\"! \n"
Hello, I know you are "runoob"!   //可以使用转义双引号

拼接字符串:
# 使用双引号拼接
"hello, "$your_name" !"    // hello, runoob !
"hello, ${your_name} !"    // hello, runoob !
# 使用单引号拼接
greeting_2='hello, '$your_name' !'   // hello, runoob !
greeting_3='hello, ${your_name} !'   //hello, ${your_name} !

字符串长度:
${#str}

截取字符串:
${string:1:4}    //从index为1开始,截取长度为4

查找:
string="runoob is a great site"
echo `expr index "$string" io`  # 查找i或o的首次出现位置,输出 4

数组:

数组定义:
array_name=(value0 value1 value2 value3)
或者
array_name[0]=value0
array_name[1]=value1

读取数组:
valuen=${array_name[n]}
${array_name[@]}  // @获取所有元素

# 取得数组元素的个数:
length=${#array_name[@]}
# 或者
length=${#array_name[*]}

传参:

$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数。其中 $0 为执行的文件名。
$#	传递到脚本的参数个数
$*	以一个单字符串显示所有向脚本传递的参数。
如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$$	脚本运行的当前进程ID号
$!	后台运行的最后一个进程的ID号
$@	与$*相同,但是使用时加引号,并在引号中返回每个参数。" $* " 等价于 "1 2 3"(传递了一个参数),而 "$@" 等价于 "1" "2" "3"(传递了三个参数)。
如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$-	显示Shell使用的当前选项,与set命令功能相同。
$?	显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

条件判断
在这里插入图片描述
在这里插入图片描述

if [ $is_chief -eq 1 -a $is_debug == "1" ]; then  //注意中括号两边一定要有空格
    echo "okokoko"
else
    echo "nonono"
fi
is_debug=0
for p in "$@"; do
    if [ $p == "--debug=1" ]; then
        is_debug=1
    fi
done
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值