Shell编程
2021/12/10 7:17:51
本文主要是介绍Shell编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Shell编程
1. 编写shell脚本
#
号开头注释#!
指定运行环境
#!/bin/bash # -n 显示信息时不自动换行 echo -n "hello,world" # `` 用于命令替换,将扩起来额字符串视为命令执行,并将输出的字符串在原地展开 echo -n "用户名 `whoami` "
2. 运行shell脚本
- 给脚本添加执行权限 (假定脚本名叫 hello)
# 添加执行权限 chmod -x hello # 运行 ./hello
- 在指定的shell下执行脚本
# 1 sh hello # 2 bash hello # 3 调试的时候使用,先打印原语句,在打印执行结果 bash -v hello # 4 调试的时候使用,打印出经过替换后的命令行内容 bash -x hello
3. shell 变量
1. 变量赋值和访问
注意:给变量赋值时,等号两边不要有空格
# 赋值 x="hello,world" # x的值会被覆盖 x=8; y=$x+5 # y=13 skill="Shell" # 如果不加大括号,会将 $skillScript当做一个变量。给所有变量加上花括号是一个好的编程习惯 echo "I'm good at ${skill}Script" hello="hello,world" # 只读变量,不能被修改 readonly hello # 删除变量 unset hello
2. 内部变量
变量 | 含义 |
---|---|
$0 | 当前脚本的文件名 |
$n | 传递给脚本或者函数的参数 |
$# | 传递给脚本或者函数的参数个数 |
$* | 传递给脚本或者函数的所有参数 |
$? | 上个命令的退出状态,或者函数的返回值 |
$$ | 当前shell进程ID |
#!/bin/bash echo $0 echo $1 echo $2 echo $# echo $* echo $? echo $$
- 在 shell程序中,可以使用 set 命令为位置参数赋值或重新赋值.
set BB CC
3. 变量值输出
- 如果需要原样输出字符串(不需要进行转义),则应使用单引号。
str="hello" echo "$str" # 输出 hello echo '$str' # 输出 $str
输出内容使用双引号,如果需要 原样输出 美元符号($),反引号(`),双引号("),需要使用转义符号 (\)。
4. 变量值读取
#!/bin/bash # 从键盘输入变量 read -p "请输入两个数字:" p1 p2 echo $p1 echo $p2
5. 数组
#!/bin/bash # 初始化数组 array=(1 2 3 4 5) # 更改数组内容 array[0]=6 array[1]=7 echo ${array[0]} echo ${array[1]} # 输出数组中所有元素 echo ${array[*]} # 输出数组个数 echo ${#array[@]} # 输出单个元素的长度 echo ${#array[3]}
4. 表达式与运算符
a=3 b=4 # 运算符之间有空格 var=`expr $a + $b` # 使用乘号要使用转义 var=`expr $a \* $b` val=$[$a+$b] # val=7 val=$[$a-$b] # val=-1 val=$[$a*$b] # val=12 val=$[$a/$b] # val=0
5. 流程控制
1.条件语句
#!/bin/bash a=3 b=5 # 注意空格 也可以写成[ $a -eq $b ] if [ $a == $b ] then echo "a=b" elif [ $a -lt $b ] then echo "a<b" elif [ $a -gt $b ] then echo "a>b" else echo "error" fi
2.case语句
#!/bin/bash # 从键盘读取的第一个数 n=$1 case $n in 1) echo "输入1" ;; 2) echo "输入2" ;; 3) echo "输入3" ;; *) echo "其他数" esac
3. 循环结构
while循环
#!/bin/bash total=0 num=0 while [ $num -lt 100 ] do total=$[$total+$num] num=$[$num+1] done echo "total: $total"
for 循环
#!/bin/bash list=(1 2 3 4 5 6 7 8 9) for val in ${list[*]} do echo -n $val done
4. 函数
#!/bin/bash add(){ val=`expr $1 + $2` return $val } # 给函数传递参数 add 4 5 # #? 获取函数的返回值 echo $? # 输出9 echo "val: $val" #输出 val:9
这篇关于Shell编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-29设计Element UI表单组件居然如此简单!
- 2024-12-28一步到位:购买适合 SEO 的域名全攻略
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南