shell语言——运算符和控制语句

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 $?

shell语言——运算符和控制语句_第1张图片

 例子:

[ 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、选择结构

shell语言——运算符和控制语句_第2张图片

if [ $a -gt 18 ] && [ $a -lt 35 ]; then echo OK; fi

echo $a 

a=35

a=36

shell语言——运算符和控制语句_第3张图片

 shell语言——运算符和控制语句_第4张图片​​​​​​​

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

shell语言——运算符和控制语句_第5张图片

 while循环

while [ $a -le $1 ]
do
   sum=$[ $sum + $a ]
   a=$[ $a + 1 ]
done
echo $sum

 6、读取控制台输入

shell语言——运算符和控制语句_第6张图片​​​​​​​

 

#!/bin/bash
read -t 10 -p "请输入您的变量:" n
echo "这是:$n"

你可能感兴趣的:(shell脚本,笔记,linux,运维,服务器)