linux中的bash操作符

1.字符串操作符(替换操作符)

${var:-word}: 如果var 存在且不为空, 返回它的值, 否则返回word
${var:=word}: 如果var 存在且不为空, 返回它的值, 否则将word 赋给var, 返回它的值
${var:+word}: 如果var 存在且不为空, 返回word, 否则返回空
${var:?message} 如果var 存在且不为空, 返回它的值,
否则显示“-bash: var: message”, 然后退出当前命令或脚本
${var:offset[:length]} 从offset 位置开始返回var 的一个长为length 的子串,
若没有length, 则默认到var 串末尾

ct@ehbio:~$ echo ${var:?message}
-bash: var: message
ct@ehbio:~$ var='sheng xin bao dian'
ct@ehbio:~$ echo ${var:6:3}
xin

 2. 模式匹配操作符

${var#pattern} 从var 头部开始, 删除和pattern 匹配的最短模式串, 然后返回剩余串
${var##pattern} 从var 头部开始, 删除和pattern 匹配的最长模式串, 然后返回剩余串, basename path =
${path##*/}
${var%pattern} 从var 尾部开始, 删除和pattern 匹配的最短模式串, 然后返回剩余串, dirname path = ${path%/*}
${var%%pattern} 从var 尾部开始, 删除和pattern 匹配的最长模式串, 然后返回剩余串
${var/pattern/string} 用string 替换var 中和pattern 匹配的最长模式串

ct@ehbio:~$ var='sheng xin bao dian good'
ct@ehbio:~$ echo ${var/good/great}
sheng xin bao dian great

#比如获取fastq 文件的名字部分
for i in `ls *_1.fq.gz`; do j=${i/_1.fq.gz/}; echo "$j"; done

3.Shell 中条件和test 命令

Bash 可以使用[ … ] 结构或test 命令测试复杂条件
格式: [ expression ] 或test expression
返回一个代码, 表明条件为真还是为假, 返回0 为真, 否则为假。
注: 左括号后和右括号前空格是必须的语法要求

(1). 文件测试操作符
-d file: file 存在并且是一个目录
-e file: file 存在
-f file: file 存在并且是一个普通文件
-g file: file 存在并且是SGID(设置组ID) 文件
-r file: 对file 有读权限
-s file: file 存在并且不为空
-u file: file 存在并且是SUID(设置用户ID) 文件
-w file: 对file 有写权限
-x file: 对file 有执行权限, 如果是目录则有查找权限
-O file: 拥有file
-G file: 测试是否是file 所属组的一个成员
-L file: file 为符号链接
file1 –nt file2: file1 比file2 新

file1 –ot file2: file1 比file2 旧

ct@ehbio:~$ touch older
ct@ehbio:~$ touch newer
ct@ehbio:~$ if test -e older; then echo "older esists"; fi
older esists
ct@ehbio:~$ if test -s older; then echo "older is unempty"; fi
ct@ehbio:~$ if [ -s older ]; then echo "older is unempty"; fi

(2).字符串操作符

str1=str2 str1 和str2 匹配

str1!=str2 str1 和str2 不匹配
str1>str2 str1 大于str2
-n str str 的长度大于0(不为空)-z str str 的长度为0(空串),常用于判断必须的命令行参数是否传入

(3)整数操作符(ge: great equal; gt: great than)

var1 –eq var2 var1 等于var2
var1 –ne var2 var1 不等于var2
var1 –ge var2 var1 大于等于var2
var1 –gt var2 var1 大于var2
var1 –le var2 var1 小于等于var2
var1 –lt var2 var1 小于var2

if (( 3>2 )); then echo 'TRUE'; fi
TRUE

(4)逻辑操作符

!expr 对expr 求反expr1 && expr2 对expr1 与expr2 求逻辑与, 当expr1 为假时不再执行expr2
expr1 || expr2 对expr1 与expr2 求逻辑或, 当expr1 为真时不再执行expr2

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux,退出bash命令有以下几种方式: 1. 使用exit命令:在命令行输入exit,按下回车键即可退出bash命令。 2. 使用Ctrl + D快捷键:在命令行输入Ctrl + D组合键,即可退出bash命令。 3. 使用logout命令:在命令行输入logout,按下回车键即可退出bash命令。 以上三种方式都可以有效地退出bash命令,具体使用哪种方式取决于个人习惯。 ### 回答2: 在LinuxBash是最常用的命令行解释器之一。Bash虽然功能强大、灵活,但是有时候我们需要退出它才能进行其他的操作或者重新开启一个新的Bash窗口。 有几种常见的方法可以退出Bash。 1. 使用exit命令 在Bash命令行界面,键入exit命令并按回车键,Bash会将当前的会话结束,并返回到上一级的Shell。 2. 使用Ctrl+D快捷键 在Bash命令行界面,按下Ctrl+D键组合,则会立即退出Bash并返回到上一级的Shell。 3. 使用logout命令 在Bash命令行界面,键入logout并按回车键,Bash将会退出并返回到上一级Shell。 无论是哪种退出方式,都会让Bash结束当前的会话,并返回到上一级Shell。如果当前的Shell已经是最上层的Shell,那么退出Bash会使得整个终端窗口关闭。 总之,在Linux,退出Bash最简单的方式就是使用exit命令或者Ctrl+D快捷键。这两种方式都可以在Bash命令行界面快速、轻松地结束当前的会话。 ### 回答3: 在LinuxBash是一种常用的命令行界面(CLI),可用于控制操作系统并运行各种应用程序。由于bash具有强大的功能和灵活性,因此它已经成为了Linux用户喜爱的命令行工具。除了常用的操作外,用户在使用Bash时如何退出也是非常重要的问题。下面是退出Bash的几种方法。 1. 使用exit命令:在Bash,用户可以使用exit命令结束当前的shell会话,并返回到上一级会话或关闭终端窗口。输入exit并按下回车键即可退出Bash,也可以使用快捷键Ctrl+D来代替exit命令。 2. 使用logout命令:Linux,logout命令与exit命令作用相似。使用logout命令将结束当前Bash会话,并返回到上一级会话或关闭终端窗口。可以输入logout并按下回车键来执行此命令。 3. 使用Ctrl+C断当前命令:在Bash命令行下执行某些命令时,可能需要断这些正在运行的命令。可以按下Ctrl+C键来断当前命令,并返回到命令行提示符下,然后可以输入exit或logout来退出Bash。 4. 使用Ctrl+D键结束当前输入:在Bash界面,当用户需要输入某些命令或参数时,按下Ctrl+D键将触发EOF(End Of File)标记,并立即结束当前输入行。如果此时未输入任何命令,则Bash会话将自动结束,并返回到上一级会话或关闭终端窗口。 总之,在Linux退出Bash有多种方法。可以根据实际情况选择不同的退出方式。此外,需要特别注意的是,Bash使用exit或logout命令时,会话尚未保存的更改将无法保存,因此在结束会话前应该保存已经更改的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值