但婆 发表于 2026-1-7 00:05:00

嵌入式 - shell 常用语法简单总结

shell 常用语法

初步使用        Linux中工具链的配置        变量        参数        条件判断        循环        输入读取        函数        正则表达式        文本处理工具
bash和shell的关系:shell是一个概念,bash是这个概念的一个具体实现。
初步使用

#!bin/bash

echo "Hello world!"
echo

# shell
vim helloworld.sh
chmod u+x helloworld.sh

# 在当前bash运行
. helloworld.sh
source helloworld.sh

# 在子bash中运行,无法修改当前shell的变量
./helloworld.shLinux中工具链的配置

​        ~/.bashrc用于定义当前用户的Bash shell 环境参数。每次打开终端时该文件就会执行。在~/.bashrc中添加
export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
export PATH=$PATH:/home/ayuan/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin

[*]别名
alias ll='ls -l'# 输入 ll 等效于 ls -l变量

# 常用系统变量
echo $HOME; echo $PWD; echo $SHELL; echo $USER

# 定义变量时,=号前后不能有空格
# 全局变量定义,上层shell定义的全局变量下层可以查看修改,但是对上层没有影响
export ARM=armshell脚本中单引号和双引号的区别

echo "hello $name" # hello world
echo 'hello $name' # hello $name参数

# 传入的参数个数
$#
# 传入的参数分别为
$0; $1; $2;

# 传入的所有参数,整体和分开
$*; $@;

# 最后一条命令的返回状态
$?

# 当前shell的进程ID
$$

[*]运算
A=$条件判断

if [ $1 -le $b ]
then
        echo
elif
        echo
fi

case $1 in
"1")
        echo
;;
"2")
        echo
;;
*)
        echo
;;
esac

# 常用判断符号
-eq -lt -le -gt -ge -ne
-r -w -x
-e # 文件存在
-f # file
-d # dir
# 字符串比较
= !=
-z # 空串
-n # 非空串
# 逻辑
-a -o !替换运算符

[*]${var_name:-def_Val}
如果变量var_name存在且为非null,返回该变量的值,否则返回默认值def-Val
注意var_name与:之间没有空格,:与-之间可以有空格。主要用途,如果变量未定义,则用默认值。
[*]${var_name:=val}
如果变量var_name存在且为非null,返回该变量的值,否则,把val的值赋给变量var_name,并返回var_name的值val。
注意var_name与:之间没有空格,:与=之间也不能有空格。
[*]${var_name:?message}
如果变量var_name存在且为非null,返回该变量的值,否则返回该变量的名字var_name:提示信息meesage,并退出当前命令或脚本。
注意 var_name 与 : 之间没有空格,: 与 ? 之间也不能有空格。
[*]${var_name:+val}
如果变量var_name存在且为非null,返回val,否则返回null。
注意 var_name 与 : 之间没有空格,: 与 + 之间也不能有空格。
[*]${#val_name}
返回变量长度。
[*]$(())
算术运算操作。
[*]$((var1 opr var2))
例如:$((5+1)) 只能是 + - * / 和 () 运算符,并且只能做整数运算。
[*]$()
命令代换,类似于反引号(`), 例如:echo $(date)。
循环

for i in $@do        echo $idone#for((i=1;i

告陕无 发表于 2026-1-18 12:26:38

用心讨论,共获提升!

卒挪 发表于 2026-1-20 01:53:53

谢谢分享,辛苦了

蝙俚 发表于 2026-1-21 12:25:49

鼓励转贴优秀软件安全工具和文档!

事确 发表于 2026-1-22 09:31:13

这个有用。

山真柄 发表于 2026-1-22 10:31:57

谢谢分享,辛苦了

欤夤 发表于 2026-1-22 11:57:52

前排留名,哈哈哈

寇油 发表于 2026-1-23 10:19:45

谢谢分享,辛苦了

碛物 发表于 2026-1-24 12:55:27

鼓励转贴优秀软件安全工具和文档!

均浇 发表于 2026-1-25 21:02:02

感谢分享

忿惺噱 发表于 2026-1-27 05:49:08

感谢分享,学习下。

缑莺韵 发表于 2026-1-27 05:59:57

yyds。多谢分享

嗳诿 发表于 2026-1-28 03:13:17

收藏一下   不知道什么时候能用到

骆贵 发表于 2026-2-3 05:07:42

热心回复!

都淑贞 发表于 2026-2-5 03:27:52

收藏一下   不知道什么时候能用到

荏牌 发表于 2026-2-5 14:45:44

分享、互助 让互联网精神温暖你我

夔新梅 发表于 2026-2-6 02:36:56

东西不错很实用谢谢分享

泡市 发表于 2026-2-6 04:13:09

感谢分享,下载保存了,貌似很强大

米嘉怡 发表于 2026-2-6 23:41:21

感谢分享,学习下。

宿遘稠 发表于 2026-2-8 02:56:40

前排留名,哈哈哈
页: [1] 2
查看完整版本: 嵌入式 - shell 常用语法简单总结