shell编程代码模板-进阶版-命令替换-类型声明

命令替换

#!/bin/bash

:<<eof

命令替换,命令的执行结果为另一个命令的参数(获取命令执行结果)

- `command`
- $(command)

``和$()两者是等价的,但推荐初学者使用S(),易于掌握;
缺点是极少数UNIX可能不
$(())主要用来进行整数运算,包括加减乘除,引用变量前面可以加$,也可以不加$

3
a=1
b=2
echo $((a+b))
echo $(($a+$b))

eof


# 命令出错会停止执行
set -e
# 打印每条执行的命令
# set -x
# 获取系统所有用户并输出
index=0
for user in `cat /etc/passwd | cut -d ":" -f 1`
do
    echo "This is $index user: $user"
    index=$[$index+1]
done
# 根据系统时间计算去年时间
echo "This is $(date +%Y) year,and last year is $[$(date +%Y) - 1]"
echo "This is $(date +%Y) year,and last year is $(($(date +%Y) - 1))"
# 根据系统时间计算今年还有多少个星期,已经过去了多少个星期
echo "There are $[$[366-$(date +%j)]/7 ] weeks left in this year,and $[$(date +%j) / 7 ]  weeks had gone"
set +x

变量类型声明

#!/bin/bash

:<<eof

declare typeset 二者等价

declare,typeset都是用来定义变量类型的

变量类型

-r 将变量设为只读
-i 将变量设为整数
-a 将变量设为数组
-f 显示此脚本前定义过的所有函数及内容 查看系统函数(了解)
-F 仅显示此脚本前定义过的函数名 查看系统函数(了解)
-x 将变量声明为环境变量


声明变量

declare -r
declare -i
declare -a
declare -f
declare -F
declare -x

取消声明变量

declare +r
declare +i
declare +a
declare +f
declare +F
declare +x

eof


# 命令出错会停止执行
set -e
# 打印每条执行的命令
# set -x

# 1. 声明只读变量
declare -r a=0
# -bash: a: readonly variable
a=1


# 2. 声明整型变量
num1=10
# 10+10
num2=$num1+10
# 正确做法
num2=$[$num1+10]
declare -i num3
# 100
num3=$num1+90

# 3. 声明一个数组

declare -a array
array=("jones" "mike" "kobe" "jordan")
# 输出全部内容
echo ${array[@]}
# 输出元素1内容
echo ${array[1]}
# 获取数组长度 或者 获取单个数组元素长度
echo ${#array}
echo ${#array[1]}
# 修改其中的内容
array[0]="hello"
# 删除元素,或清空数组
unset array[0]
unset array
# 分片访问数组 从1到3的元素 或者单个数组元素内容分片访问
${array[@]:1:4}
${array[index]:1:4}
# 内容替换 全部元素匹配或者单个元素内容匹配
${array[@]/an/AN}
${array[index]/an/AN}

set +x
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卫生纸不够用

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值