Shell总结

本文详细介绍了Shell编程的基础知识,包括变量定义、参数处理、字符串处理、数组操作、数值运算、条件判断、循环结构、函数定义及调用,以及重定向的概念。适合初学者快速掌握Shell编程的核心内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Shell

Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

变量定义

`` 执行符:执行 `command`中的指令
'' 单引号:取消'string'中的特殊字符,如$
"" 双引号:"xxx xxx"表示一个字符串

命名只能使用英文字母[a-zA-Z],数字[0-9]和下划线[_],首个字符不能以数字[0-9]开头
中间不能有空格[ ],可以使用下划线(_)
不能使用标点符号
不能使用bash里的关键字(可用help命令查看保留关键字)

定义如下:(=号不能有空格)
aa10_=10

参数处理
$* 返回所有的参数,如果"$*" 返回的信息 "param1 param2 param3 ..."
$@ 返回所有的参数,如果"$@" 返回的信息 "param1" "param2" "param3"
$? 返回上一个命令结果,0或者1 0表示执行成功 1表示执行失败

字符串处理
aa10_a='aaaaabaaa'
打印字符串的长度
echo '${#aa10_a}'
打印字符串的子串
echo '${aa10_a:1:4} 

数组
array_name=(
'abcd'
'abcd'
'abdd'
)
array_name[4]='bbbd'
读取数组
${数组名[下标]}
所有数组
${数组名[@]}

注释
# aa 
# bb

数值相加
num1=1
num2=2
num3=`expr $num1 + $num2`

操作符

算术运算
+ - * / != == =(赋值)

关系运算 great  equal less 
-gt >  -ge >=
-lt <  -le <=
-eq =  -ne !=

布尔运算 or all not 
-o 或  -a 与  ! 非

字符串运行操作
=  字符串相等
!= 字符串不相等
-z 字符长度为0  zero
-n 字符长度不能0 not zero
$  检测字符串是否为空,不为空返回 true

文件判断
-e exists
-d directory
-w write 可写
-r read 可读
-x x 可执行
-s size 文件是否为空

逻辑运算

格式
[ condition ]

if [ 9 -lt 10 ]
then

fi

for var in array_param
do

done

while [ condition ]
do

done

case var in 
1)#模式
    command;
    command;
    ;;
2)#模式
    command;
    command:
    ;;
esac

函数

函数定义
[function] func_name()
{
    action;
    [return int;]
}
函数调用 
func_name param

重定向

0:标准输入
1:标准输出
2:标准错误输出
> 输出
< 输入
>> 追加
2>&1 标准输出与错误输出

command << delimiter
    document
delimiter
如
wc -l << EOF
    aaa 
    bbb
    ccc
EOF

不想输出到屏幕
command >> /dev/null

交互输入
while read line
do
    echo ${line}
done

 

基于C2000 DSP的电力电子、电机驱动和数字滤波器的仿真模型构建及其C代码实现方法。首先,在MATLAB/Simulink环境中创建电力电子系统的仿真模型,如三相逆变器,重点讨论了PWM生成模块中死区时间的设置及其对输出波形的影响。接着,深入探讨了C2000 DSP内部各关键模块(如ADC、DAC、PWM定时器)的具体配置步骤,特别是EPWM模块采用上下计数模式以确保对称波形的生成。此外,还讲解了数字滤波器的设计流程,从MATLAB中的参数设定到最终转换为适用于嵌入式系统的高效C代码。文中强调了硬件在环(HIL)和支持快速原型设计(RCP)的重要性,并分享了一些实际项目中常见的陷阱及解决方案,如PCB布局不当导致的ADC采样异常等问题。最后,针对中断服务程序(ISR)提出了优化建议,避免因ISR执行时间过长而引起的系统不稳定现象。 适合人群:从事电力电子、电机控制系统开发的技术人员,尤其是那些希望深入了解C2000 DSP应用细节的研发工程师。 使用场景及目标:①掌握利用MATLAB/Simulink进行电力电子设备仿真的技巧;②学会正确配置C2000 DSP的各项外设资源;③能够独立完成从理论设计到实际产品落地全过程中的各个环节,包括但不限于数字滤波器设计、PWM信号生成、ADC采样同步等。 其他说明:文中提供了大量实用的代码片段和技术提示,帮助读者更好地理解和实践相关知识点。同时,也提到了一些常见错误案例,有助于开发者规避潜在风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值