linux学习笔记

关于shell语言中的if else语句中 if的判断标准到底是什么,在if后面的命令,如果是退出状态码是0,则执行位于then后面的语句,否则执行else后面的语句。

例:

 
 
  1. #!/bin/bash
  2. #test the if statement
  3. if pwd
  4. then
  5. echo means command wpd output statement code 0
  6. else
  7. echo pwd command dosent work
  8. fi

而什么是状态码?==》在linux中每个 command运行并退出时都会产生一个退出状态码给shell,它的范围是0-255之间的数。一个command成功运行,那么它退出时产生的退出状态码则为0,否则产生的退出状态码是一个非0的正数,具体如图1所示。

而在实际的shell编程中,关键字if 后面一般并不直接接command,而是if [ condition ]。注意加上了方括号[ ]和没有加方括号是有区别的。
加上了方括号表示 if test condition,命令test会测试后面跟的条件condition,如果条件成立则返回退出状态码0,否则返回退出状态码非0的正数。具体如图2所示.

在图中,用test命令测试pwdd与pwddfg(这2个变量都没有赋值),但是查看退出状态码,发现状体码为0,
在图中,用test命令测试 test -f gdga ;test -d gdga,查看退出状态码都为1(一般性未知错误)。其原因是因为 test -f file;test -d file,它会把后面的参数当做是文件,并检查是否是文件(-f)以及检查是否是文件目录(-d)。而gdga根本没有赋值。所以返回非0状态码了。
方括号定义了测试条件,即用[ ]来代替命令test。而在书写的时候第一个方括号之后和第二个方括号之前需要加上空格

 
 
  1. if [ condition ]
  2. then
  3. operation
  4. fi

在方括号(test命令)可以判断3中条件:
1.数值比较
2.字符比较
3.文件比较
在比较之后,得到的结果是boolean值(true 和false),方括号(test命令)会将boolean值结果转化为退出状态码,如果boolean值为 true 方括号(test命令)会为if-else产生退出状态码0,如果boolean值为 false 方括号(test命令)会为if-else产生非0退出状态码。
而在condition判断的时候,主要是根据参数来判断目标是文件还是字符串。具体如图3和图4所示。

图3

图4

在图3代码中,如果方括号中的参数接的是-d 则把变量test当成文件进行处理,如果接的 = 则认为变量test是字符串,就进行字符串比较。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux学习笔记是关于学习Linux操作系统的记录和总结。在学习Linux时,你可能会遇到以下几个方面的内容。 首先,Linux是一个面向网络服务的操作系统,因此你可以随意更换桌面系统。Linux有多种不同的桌面系统供你选择。这意味着你可以根据自己的喜好和需求,选择适合自己的桌面环境。 其次,在Ubuntu中,root用户默认是被锁定的,因此你无法直接使用root权限进行操作。但是,你可以使用sudo命令来提升权限,以执行需要root权限的操作。通过sudo命令,普通用户可以在需要时暂时获得root权限,以便进行需要的操作。 此外,如果你需要修改内核为bash,可以使用vim编辑器打开/etc/passwd文件进行修改。在Linux系统中,vim是一种常用的文本编辑器,类似于Windows的记事本。通过编辑/etc/passwd文件,你可以修改用户的登录shell为bash。 总结起来,Linux学习笔记记录了学习Linux操作系统的过程和经验,包括选择适合自己的桌面环境、使用sudo提升权限以及通过vim编辑器修改/etc/passwd文件等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux学习笔记](https://blog.csdn.net/m0_65379736/article/details/125700177)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值