avatar
文章
97
标签
20
分类
60

主页
文章
  • 标签
  • 分类
算法
友链
关于我
塞 尔 达 是 天
主页
文章
  • 标签
  • 分类
算法
友链
关于我

塞 尔 达 是 天

linux_shell_引入外部脚本
发表于2023-10-30|linux|linux
3. shell语法——引入外部脚本类似于C/C++中的include操作,bash也可以引入其他文件中的代码。 语法格式: 12345. filename # 注意点和文件名之间有一个空格或source filename 示例创建test1.sh,内容为: 12#! /bin/bashname=yxc # 定义变量name 然后创建test2.sh,内容为: 12345! /bin/bashsource test1.sh # 或 . test1.shecho My name is: $name # 可以使用test1.sh中的变量 执行命令: 123acs@9e0ebfcd82d7:~$ chmod +x test2.sh acs@9e0ebfcd82d7:~$ ./test2.sh My name is: yxc
linux_shell_循环语句
发表于2023-10-30|linux|linux
3. shell语法——循环语句for…in…do…done命令格式: 123456for var in val1 val2 val3do 语句1 语句2 ...done 示例1,输出a 2 cc,每个元素一行: 1234for i in a 2 ccdo echo $idone 示例2,输出当前路径下的所有文件名,每个文件名一行: 1234for file in `ls`do echo $filedone 示例3,输出1-10 1234for i in $(seq 1 10)do echo $idone 示例4,使用{1..10} 或者 {a..z} 1234for i in {a..z}do echo $idone for ((…;…;…)) do…done命令格式: 12345for ((expression; condition; expression))do 语句1 语句2done 示例,输出1-10,每个数占一行: 1234for ((i=1; i<=10; i++))do ...
linux_shell_文件重定向
发表于2023-10-30|linux|linux
3. shell语法——文件重定向每个进程默认打开3个文件描述符: stdin标准输入,从命令行读取数据,文件描述符为0 stdout标准输出,向命令行输出数据,文件描述符为1 stderr标准错误输出,向命令行输出数据,文件描述符为2 可以用文件重定向将这三个文件重定向到其他文件中。 重定向命令列表 命令 说明 command > file 将stdout重定向到file中 command < file 将stdin重定向到file中 command >> file 将stdout以追加方式重定向到file中 command n> file 将文件描述符n重定向到file中 command n>> file 将文件描述符n以追加方式重定向到file中 输入和输出重定向 123456echo -e "Hello \c" > output.txt # 将stdout重定向到output.txt中echo "World" >> output.txt # ...
linux_shell_数组
发表于2023-10-30|linux|linux
3. shell语法——数组数组中可以存放多个不同类型的值,只支持一维数组,初始化时不需要指明数组大小。数组下标从0开始。 定义数组用小括号表示,元素之间用空格隔开。例如: 1array=(1 abc "def" yxc) 也可以直接定义数组中某个元素的值: 1234array[0]=1array[1]=abcarray[2]="def"array[3]=yxc 读取数组中某个元素的值格式: 1${array[index]} 例如: 12345array=(1 abc "def" yxc)echo ${array[0]}echo ${array[1]}echo ${array[2]}echo ${array[3]} 读取整个数组格式: 12${array[@]} # 第一种写法${array[*]} # 第二种写法 例如: 1234array=(1 abc " ...
linux_shell_判断语句
发表于2023-10-30|linux|linux
3. shell语法——判断语句if…then形式类似于C/C++中的if-else语句。 单层if命令格式: 123456if conditionthen 语句1 语句2 ...fi 示例: 1234567a=3b=4if [ "$a" -lt "$b" ] && [ "$a" -gt 2 ]then echo ${a}在范围内fi 输出结果: 13在范围内 单层if-else命令格式 12345678910if conditionthen 语句1 语句2 ...else 语句1 语句2 ...fi 示例: 12345678910a=3b=4if ! [ "$a" -lt "$b" ]then echo ${a}不小于${b}else echo ${a}小于${b}fi 输出结果: ...
linux_shell_默认变量
发表于2023-10-30|linux|linux
3. shell语法——默认变量文件参数变量在执行shell脚本时,可以向脚本传递参数。$1是第一个参数,$2是第二个参数,以此类推。特殊的,$0是文件名(包含路径)。例如: 创建文件test.sh: 1234567#! /bin/bashecho "文件名:"$0echo "第一个参数:"$1echo "第二个参数:"$2echo "第三个参数:"$3echo "第四个参数:"$4 然后执行该脚本: 1234567acs@9e0ebfcd82d7:~$ chmod +x test.sh acs@9e0ebfcd82d7:~$ ./test.sh 1 2 3 4文件名:./test.sh第一个参数:1第二个参数:2第三个参数:3第四个参数:4 其它参数相关变量 参数 说明 $# 代表文件传入的参数个数,如上例中值为4 $* 由所有参数构成的用空格隔开的字符串,如上例中值为"$1 $2 $3 $4" $@ 每个参数分别用双引号括起来的字符串, ...
linux_shell_函数
发表于2023-10-30|linux|linux
3. shell语法——函数bash中的函数类似于C/C++中的函数,但return的返回值与C/C++不同,返回的是exit code,取值为0-255,0表示正常结束。 如果想获取函数的输出结果,可以通过echo输出到stdout中,然后通过$(function_name)来获取stdout中的结果。 函数的return值可以通过$?来获取。 命令格式: 12345[function] func_name() { # function关键字可以省略 语句1 语句2 ...} 不获取 return值和stdout值示例 123456func() { name=yxc echo "Hello $name"}func 输出结果: 1Hello yxc 获取 return值和stdout值不写return时,默认return 0。 示例 12345678910111213func() { name=yxc echo "Hello $name" ...
linux_shell_概论
发表于2023-10-30|linux|linux
3. shell语法——概论概论shell是我们通过命令行与操作系统沟通的语言。 shell脚本可以直接在命令行中执行,也可以将一套逻辑组织成一个文件,方便复用。AC Terminal中的命令行可以看成是一个“shell脚本在逐行执行”。 Linux中常见的shell脚本有很多种,常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) zsh … Linux系统中一般默认使用bash,所以接下来讲解bash中的语法。文件开头需要写#! /bin/bash,指明bash为脚本解释器。 学习技巧不要死记硬背,遇到含糊不清的地方,可以在AC Terminal里实际运行一遍。 脚本示例新建一个test.sh文件,内容如下: 123#! /bin/bashecho "Hello World!" 运行方式作为可执行文件 1234567acs@9e0ebfcd82d7:~$ chm ...
linux_shell_变量
发表于2023-10-30|linux|linux
3. shell语法——变量定义变量定义变量,不需要加$符号,例如: 123name1='yxc' # 单引号定义字符串name2="yxc" # 双引号定义字符串name3=yxc # 也可以不加引号,同样表示字符串 使用变量使用变量,需要加上$符号,或者${}符号。花括号是可选的,主要为了帮助解释器识别变量边界。 1234name=yxcecho $name # 输出yxcecho ${name} # 输出yxcecho ${name}acwing # 输出yxcacwing 只读变量使用readonly或者declare可以将变量变为只读。 12345name=yxcreadonly namedeclare -r name # 两种写法均可name=abc # 会报错,因为此时name只读 删除变量unset可以删除变量。 123name=yxcunset nameecho $name # 输出空行 变量类型 自定义变量(局部变量)子进程不能访问的变 ...
linux_shell_test命令与判断符号[]
发表于2023-10-30|linux|linux
3. shell语法——test命令与判断符号[]逻辑运算符&&和|| && 表示与,|| 表示或 二者具有短路原则:expr1 && expr2:当expr1为假时,直接忽略expr2expr1 || expr2:当expr1为真时,直接忽略expr2 表达式的exit code为0,表示真;为非零,表示假。(与C/C++中的定义相反) test命令在命令行中输入man test,可以查看test命令的用法。 test命令用于判断文件类型,以及对变量做比较。 test命令用exit code返回结果,而不是使用stdout。0表示真,非0表示假。 例如: 12345678test 2 -lt 3 # 为真,返回值为0echo $? # 输出上个命令的返回值,输出0acs@9e0ebfcd82d7:~$ ls # 列出当前目录下的所有文件homework output.txt test.sh tmpacs@9e0ebfcd82d7:~$ test -e test.sh && echo "exist ...
1…8910
avatar
waar299
文章
97
标签
20
分类
60
Follow Me
公告
摸鱼万岁
最新文章
对象和枚举的反序列化2024-04-12
最大公约数2024-04-12
博弈论2024-04-12
扑克牌2024-04-09
绿豆的归宿2024-04-09
分类
  • hexo配置2
  • java3
    • properies1
    • 基础数据类型1
    • 序列化1
  • linux26
  • spring3
    • aop1
标签
区间合并 SpringSecurity 贪心 数据库 linux 开发 前端 spring BFS springmvc 树形dp java JDBC 状态压缩dp 网络,http,https aop properities springboot hexo 二分
归档
  • 四月 202410
  • 三月 202418
  • 二月 202413
  • 一月 202415
  • 十二月 202311
  • 十一月 20232
  • 十月 202328
网站资讯
文章数目 :
97
已运行时间 :
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2024 By waar299

鄂公网安备42018502007229 鄂ICP备2022016767号