壳牌的退出状态码,IFS环境变量,三通命令,猫在文件& lt; & lt;EOF的用法

  

退出状态码

  

壳中运行的每个命令都使用<>强退出状态码(退出状态)强。退出状态码是一个0 ~ 255的整数,在命令结束运行时有命令传给壳。

  

查看退出状态码

  

Linux提供了一个专门的变量$ ?来保存上一个已执行命令的退出状态码。对于需要进行检查的命令,必须在其运行完毕后立刻查看或使用美元吗?变量。它的值会变成有壳所执行的最后一条命令的退出状态码。

  

一个成功结束的命令的退出状态码是0. linux错误退出状态码没有什么标准可循,但有一些可用的参考:

           状态码   描述               0   命令成功结束         1   一般性未知错误         2   不适合的壳指令         126   命令不可执行         127   没找到命令         128   无效的退出参数         128 + x   与Linux信号x相关的严重错误         130   通过Ctrl + C终止的命令         255   正常范围之外的退出状态码            

举例说明:

  
      <李>无效的命令会返回一个退出状态码127。   <李>退出状态码126,表明用户没有执行命令的正确权限。   <李>给命令提供了无效参数,会产生一般性的退出状态码1,表明在命令中发生了未知错误。   
  

退出命令

  

默认情况下,壳牌脚本会以脚本中的最后一个命令的退出状态码退出。
使用退出命令可以改变这种行为,允许你在脚本结束时指定一个退出状态码。

  

退出状态码是一个0 ~ 255的整数,参数太大,会被系统取模。

  

IFS字段分隔符

  

环境变量IFS,叫做<强>内部字段分隔符(内部字段分隔符)如果环境变量定义了bash shell用作字段分隔符的一些列字符。默认情况下是空格,制表符,换行符。可以更改这个环境变量。
因为都是一些特殊字符,直接输出是看不到的:

  
 <代码类=" language-bash ">美元回声“IFS美元”
  
  美元回声“IFS美元”| od - b
  012 040 011 012 0000000
  0000004
  $  
  

这里转成了八进制!”040年“是空格,“011“是制表符,“012”是换行符。最后一个012是因为回波默认是会换行的。
还可以试一下- c选项,这样会打印出t和\ \ n但是空格还是空格,就不明显了。

  

<强> od命令
od命令系统默认的显示方式是八进制,名称源于八进制转储。另外还有一个hexdump命令,以十六进制输出。功能上应该有一些差别,用起来差不多,这里的情况把od命令替换为hexdump命令的效果应该是一样的。
hexdump有个- c(大写)选项是od没有的,这里没什么效果,用来查看文件的时候效果好。

  

<强>只识别换行符:

  
 <代码类=" language-bash "> IFS=$ ' \ n '  
  

临时更改IFS

  

一个可参考的安全实践是在改变IFS之前保存原来的值,之后再恢复它:

  
 <代码类=" language-bash "> IFS_old=$ IFS
  IFS=$ ' \ n '
  & lt;使用新的IFS值比;
  IFS=$ IFS_old  
  

这就保证了在脚本的后续操作中使用的是IFS的默认值。建议在任何时候都这么做。

  

指定多个IFS字符

  

要指定多个IFS字符,只要将它们在赋值行串起来就行了:

  
 <代码类=" language-bash "> IFS=$“\ n”:,“ 
  

这里将换行符,冒号,分号,双引号作为字段分隔符。

  

三通将输出同时发送到屏幕和文件

  

三通命令相当于管道的一个T型接头。它将从STDIN过来的数据同时发往两处,一处是STDOUT,另一处是三通命令行所指定的文件名。

  

默认情况下,每次都会覆盖文件:

  
 <代码类=" language-bash "> $ |三通test1日期
  12月6日星期五16:32:59中科2019
  猫test1美元
  12月6日星期五16:32:59中科2019
  $ |三通test1日期
  12月6日星期五16:33:10中科2019
  猫test1美元
  12月6日星期五16:33:10中科2019
  $  
  

如果想追加数据,需要用——选项:

  
 <代码类=" language-bash ">猫test1美元
  12月6日星期五16:33:10中科2019
  $ |三通——test1日期
  12月6日星期五16:34:00中科2019
  猫test1美元
  12月6日星期五16:33:10中科2019
  12月6日星期五16:34:00中科2019
  $ 

壳牌的退出状态码,IFS环境变量,三通命令,猫在文件& lt; & lt;EOF的用法