[转帖]【shell语法 | 01】基础练习

shell,语法,基础,练习 · 浏览次数 : 0

小编点评

```bash #!/bin/bash for i in $(seq 10);do echo -n "$i: $RANDOM" done # 回到顶部循环体1 for var in listdo commandsdone done ``` **使用说明:** 1. 将该脚本保存为 `loop.sh` 文件。 2. 运行:`chmod +x loop.sh`。 3. 运行脚本:`./loop.sh`。 **结果:** 该脚本会打印 10 个随机数字,每个数字占一行。 **代码说明:** 1. 该脚本首先使用 `for` 循环遍历 10 个数字。 2. 在每个循环中,它使用 `printf` 打印一个包含数字和随机数的字符串。 3. 循环结束后,它回到 `for` 循环的顶部,执行下一个循环。 4. `listdo` 是一个循环体,它使用 `do...done` 语句遍历 `listdo` 的每个元素。 5. `commandsdone` 是一个用来存储循环体代码的变量。 6. 脚本在 `for` 循环中执行代码并打印结果。 7. 在循环结束后,它回到 `for` 循环的顶部,执行下一个循环。 8. 这使得脚本无限循环,打印 10 个随机数字。

正文

 

https://www.cnblogs.com/sunbines/p/14587095.html

 

 

正文

利用判断符号[ ]

  • [ str ] : str 字符串存在为真
复制代码
 1 [root@localhost ~]# if [  ]; then echo 'true';else echo 'false';fi  
 2 false
 3 [root@localhost ~]# 
 4 [root@localhost ~]# if [ 123 ]; then echo 'true';else echo 'false';fi
 5 true
 6 [root@localhost ~]# if [  ]; then echo 'true';else echo 'false';fi 
 7 false
 8 [root@localhost ~]# 
 9 [root@localhost ~]# if [ '123' ]; then echo 'true';else echo 'false';fi 
10 true
11 [root@localhost ~]# 
12 [root@localhost ~]# if [[ '123' ]]; then echo 'true';else echo 'false';fi 
13 true
14 [root@localhost ~]# 
15 [root@localhost ~]# if [[ '' ]]; then echo 'true';else echo 'false';fi 
16 false
复制代码

 

  • -n : nozero 字符串长度不为0时为真
  • -z: zero 字符串长度为0时为真
复制代码
 1 [root@localhost ~]# a=123
 2 [root@localhost ~]# 
 3 [root@localhost ~]# if [[ -n $a ]]; then echo 'true';else echo 'false';fi 
 4 true
 5 [root@localhost ~]# 
 6 [root@localhost ~]# if [ -n $a ]; then echo 'true';else echo 'false';fi 
 7 true
 8 [root@localhost ~]# 
 9 [root@localhost ~]# if [ -z $a ]; then echo 'true';else echo 'false';fi 
10 false
11 [root@localhost ~]# a=
12 [root@localhost ~]# 
13 [root@localhost ~]# if [ -z $a ]; then echo 'true';else echo 'false';fi 
14 true
15 [root@localhost ~]# if [ -n $a ]; then echo 'true';else echo 'false';fi 
16 true
17 [root@localhost ~]# 
18 [root@localhost ~]# if [ -n "$a" ]; then echo 'true';else echo 'false';fi 
19 false
复制代码

 

循环体

1. for...do...done(固定循环)

for var in list
do 
  commands
done

 

1. 示例1

#!/bin/bash
for animal in dog cat elephant
do
    echo "There are ${animal}s.."
done

 

1 #!/bin/bash
2 for animal in dog cat elephant
3 do
4     echo "There are ${animal}s.."
5 done

 

1 #!/bin/bash
2 for((i = 0; i < 5; ++i))
3 do
4     echo "this is test!"
5 done

 

产生十个随机数字

方法1:

#!/bin/bash

for i in $(seq 10);
do
    echo "$i: $RANDOM";
done

复制代码
#!/bin/bash

for i in $(seq 10);
do
    echo "$i: $RANDOM";
done
复制代码

方法2:

 1 #!/bin/bash
  2 for((i = 0; i < 5; ++i))
  3 do
  4     echo "this is test!"
  5 done     

与[转帖]【shell语法 | 01】基础练习 相似的内容:

[转帖]【shell语法 | 01】基础练习

https://www.cnblogs.com/sunbines/p/14587095.html 目录 利用判断符号[ ] 循环体 正文 回到顶部 利用判断符号[ ] [ str ] : str 字符串存在为真 1 [root@localhost ~]# if [ ]; then echo 'tru

[转帖]Linux Shell编程 循环语法

https://zhuanlan.zhihu.com/ for循环 for 循环是固定循环,也就是在循环时已经知道需要进行几次循环。有时也把 for 循环称为计数循环。语法: for 变量 in 值1 值2 值3… do 程序 done 在这种语法中,for 循环的次数取决于 in 后面值的个数(以

[转帖]Shell 中的 expect 命令

https://www.cnblogs.com/chenjo/p/12892894.html 目录 expect 介绍 expect 安装 expect 语法 自动拷贝文件到远程主机 示例一 示例二 示例三 示例四 expect 介绍 借助 expect 处理交互的命令,可以将交互过程如 ssh 登

[转帖]Shell if 条件判断

Shell 语言中的if条件 一、if的基本语法: if [ command ];then 符合该条件执行的语句 elif [ command ];then 符合该条件执行的语句 else 符合该条件执行的语句 fi 二、文件/文件夹(目录)判断 [ -b FILE ] 如果 FILE 存在且是一个

[转帖]linux shell 中数组的定义和for循环遍历的方法

https://www.cnblogs.com/ysk123/p/11510718.html linux 中定义一个数据的语法为: variable=(arg1 arg2 arg3 ....) 中间用空格分开。数组的下标从0开始。 1 获取下标为n的元素: variable[n] 而且不存在数组下标

[转帖]总结:shell中的if条件判断

一、if 的基本语法 if [ command ];then xxxelif [ command ];then xxxelse xxxfi 二、常见的一些写法案例 1、if [ "x${var}" = "x" ] 其实就是判断${var}是否为空的意思 2、if [ X"$?" == X"0" ]

[转帖]流程控制之for循环

https://www.cnblogs.com/caodan01/p/14949052.html 目录 一 语法 二 案例 一 语法 # 》Shell风格语法 for 变量名 [ in 取值列表 ] do 循环体 done # 》C语言风格语法 for ((初值;条件;步长)) do 循环体 don

[转帖]linux-shell总结(没事一看)

https://blog.51cto.com/wangaimin/1895607 !脚本执行与调试 1、绝对路径执行,要求文件有执行权限 2、以sh命令执行,不要求文件有执行权限 3、.加空格或source命令执行,脚本将在当前shell中执行 4、检查脚本语法 bash -v test.sh 5、

[转帖]【jmeter】BeanShell用法详细汇总

一、什么是Bean Shell BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。 官网地址:http://w

[转帖]【jmeter】BeanShell用法详细汇总

一、什么是Bean Shell BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。 官网地址:http://w