1、运算符
expr命令或者$[],$(()):
expr 5+2
expr 5 \* 2
echo $[5*2]
echo $((5+2))
touch add.sh
vim add.sh
#在add.sh文件中编辑以下内容
#!/bin/bash
sum=$[$1 + $2]
echo sum=$sum
#在命令行中执行
chmod +x add.sh
./add.sh 12 23
2、条件判断式
与其他编程逻辑值相反(1假0真)
逻辑与和逻辑或与C语言相同(&&、||)
a=hello
#测试a的值是否为hello
test $a = hello
#输出测试值,正确为0,错误为1
echo $?
#第二种
[ $a = hello ]
echo $?
例子:
[ 2 -lt 8 ]
[ -r hello.sh ]
[ -w hello.sh ]
[ -x hello.sh ]
[ -e hello.sh ]
[ -f hello.sh ]
[ -d hello.sh ]
3、TNC连接不上的调试方法
#退出base环境
conda deactivate
#开启vnc服务端口
vncserver :3
4、选择结构
if [ $a -gt 18 ] && [ $a -lt 35 ]; then echo OK; fi
echo $a
a=35
a=36
5、循环结构
for循环
eg:累和运算
#创建vim文件,并添加执行操作
vim sum_to.sh
chmod +x sum_to.sh
#编辑vim文件,输入累和代码
#!/bin/bash
for (( i=1 ; i <= $1 ; i++ ; ))
do
sum=$[$sum+$i]
done
echo $sum
#传入sum参数,执行文件代码
./sum_to.sh 100
./sum_to.sh 10
{}表示生成序列,增强for循环案例:
for os in linux windows macos; do echo $os; done
for i in {1..100}; do $[ $sum + $i ]; done; echo $sum
$*把所有参数看成一个整理,$@则区分每个参数($*把所有参数看成一个整体,则输出一行,$@怎把每一个参数看成个体,输出多行)
echo '-----------$*------------'
for para in '$*'
do
echo $para
done
echo '-----------$@------------'
for para in '$@'
do
echo $para
done
while循环
while [ $a -le $1 ]
do
sum=$[ $sum + $a ]
a=$[ $a + 1 ]
done
echo $sum
6、读取控制台输入
#!/bin/bash
read -t 10 -p "请输入您的变量:" n
echo "这是:$n"