赋值
myvar='this is a envirement variable!'
等号两边不能有空格;
''在只有一个字符时可省略
''在没有其他关键字时可用“”代替。(!为关键字)
cmd='ls' 表赋值
echo $cmd ls
cmd=`ls` 表命令替换
echo $cmd 执行ls命令
cmd=$(ls) 表命令替换
echo $cmd 执行ls命令
显示变量
echo $myvar
echo foo${myvar}bar
echo 'foo${myvar}bar' 视为字符串,不进行解析
echo "foo${myvar}bar" 视为变量
echo 默认换行,加-n参数后不换行
读取变量
read [变量名]
read -p "提示内容" [变量名] 可直接写入提示
截字符串
myvar=foodforthought
echo ${myvar##*fo} 从前截掉最长子串 rthought
echo ${myvar#*fo} 从前截掉最短子串 odforthought
echo ${myvar%%o*} 从后截掉最长子串 f
echo ${myvar%o*} 从后截掉最短子串 foodforth
=两边无空格,表赋值
=两边有空格,表判断
[和]两边必须有空格
${ }表变量
$( )表命令替换
$(( ))表算术表达式
比较运算符
-e filename 假如 filename存在,则为真
-d filename 假如 filename为目录,则为真
-f filename 假如 filename为常规文档,则为真
-L filename 假如 filename为符号链接,则为真
-r filename 假如 filename可读,则为真
-w filename 假如 filename可写,则为真
-x filename 假如 filename可执行,则为真
字符串比较运算符
-z string 假如 string长度为零,则为真
-n string 假如 string长度非零,则为真
算术比较运算符
Num1 -eq num2 等于 [ 3 -eq $mynum ]
Num1 -ne num2 不等于 [ 3 -ne $mynum ]
Num1 -lt num2 小于 [ 3 -lt $mynum ]
Num1 -le num2 小于或等于 [ 3 -le $mynum ]
Num1 -gt num2 大于 [ 3 -gt $mynum ]
Num1 -ge num2 大于或等于 [ 3 -ge $mynum ]
bash中的for循环
for x in one two three four
do
echo number $x
done
定义了一个$x环境变量,依次被赋值为one two three four,也可被赋值为文件
bash中的参数表示
$0 表argv[0]
$1 表argv[1]
$# 表argc(不算argv[0])
$@ 表argv(不算argv[1])
注释掉: 进入 可视化 选中 Ctrl+c
删除注释: 进入 可视化 选中 Ctrl+x
把目录下所有的.c文件,改为.d文件:
for file in *.c
do
mv $file ${file%%.*}.d
done
while循环:
while [ ]
do
action
done
until循环:
until
do
action
done
阅读(396) | 评论(0) | 转发(0) |