美文网首页
bash学习笔记

bash学习笔记

作者: nemo_test | 来源:发表于2020-08-07 14:50 被阅读0次

快捷键操作

  • Ctrl + a:移到行首
  • Ctrl + b:向行首移动一个字符,与左箭头作用相同
  • Ctrl + e:移到行尾
  • Ctrl + f:向行尾移动一个字符,与右箭头作用相同
  • Alt + f:移动到当前单词的词尾( ESC + f )
  • Alt + b:移动到当前单词的词首 ( ESC + b )

变量

  • 读取变量的时候,变量名也可以使用花括号{}包围,比如$a也可以写成${a}
    这种写法可以用于变量名与其他字符连用的情况
$ a=foo
$ echo $a_file


$ echo ${a}_file
foo_file
  • unset命令用来删除一个变量
  • $$为当前 Shell 的进程 ID,可以用来命名临时文件 LOGFILE=/tmp/output_log.$$
  • $_为上一个命令的最后一个参数
${varname:-word} 如果变量varname存在且不为空,则返回它的值,否则返回word
${varname:=word} 如果变量varname存在且不为空,则返回它的值,否则将它设为word
${varname:+word} 如果变量名存在且不为空,则返回word,否则返回空值
${varname:?message} 如果变量varname存在且不为空,则返回它的值,否则打印出varname: message
${#varname} 获取字符串长度
${varname:offset:length} 提取子字符串
${varname^^} 转为大写
${varname,,} 转为小写

算术

  • ((...))语法可以进行整数的算术运算

脚本

#!/usr/bin/env bash 
指定解释器

# 给所有用户执行权限
$ chmod +x script.sh
# 给所有用户读权限和执行权限
$ chmod +rx script.sh
# 或者
$ chmod 755 script.sh
  • getopts命令用在脚本内部,可以解析复杂的脚本命令行参数,通常与while循环一起使用,取出脚本所有的带有前置连词线(-)的参数
while getopts 'lha:' OPTION; do
  case "$OPTION" in
    l)
      echo "linuxconfig"
      ;;


    h)
      echo "h stands for h"
      ;;


    a)
      avalue="$OPTARG"
      echo "The value provided is $OPTARG"
      ;;
    ?)
      echo "script usage: $(basename $0) [-l] [-h] [-a somevalue]" >&2
      exit 1
      ;;
  esac
done
shift "$(($OPTIND - 1))"
  • 在shell脚本中,默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入)、标准输出(输出到屏幕)、标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,1,2
1>&2 正确返回值传递给2输出通道 &2表示2输出通道
2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道
> /dev/null 所有传给它的东西它都丢弃掉
#!/bin/bash
filename='/etc/hosts'


while read myline
do
  echo "$myline"
done < $filename

# 上面的例子通过read命令,读取一个文件的内容。
# done命令后面的定向符<,将文件内容导向read命令,每次读取一行,存入变量myline,直到文件读取完毕。
  • read命令读取的值,默认是以空格分隔。可以通过自定义环境变量IFS(内部字段分隔符,Internal Field Separator 的缩写),修改分隔标志。

if结构

if commands; then
  commands
[elif commands; then
  commands...]
[else
  commands]
fi

相关文章

  • bash学习笔记

    快捷键操作 Ctrl + a:移到行首 Ctrl + b:向行首移动一个字符,与左箭头作用相同 Ctrl + e:...

  • Shell/bash学习笔记

    定义:shell是一个命令行解释器,为用户提供一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用...

  • bash 语言 学习笔记

    前言 大部分人都用过终端命令行。有的时候需要繁琐的输入同样的命令,我们可以编写自己的脚本来完成这个工作。 指定解释...

  • 几个入门命令行

    几个入门命令行学习笔记:ls、cat、mv、touch。 学习环境:windows7下的git bash。 1、l...

  • Linux学习笔记之bash

    前言:操作系统就是一组软件,控制着整个硬件与管理系统的活动监测,为了这组软件不被用户错误地使用,导致系统崩溃,就将...

  • Bash基本语法-学习笔记

    1.变量1.1 环境变量HOME:用户的主目录。HOST:当前主机的名称。TERM:终端类型名,即终端仿真器所用的...

  • Flutter

    学习地址 以下为个人笔记: Bug记录 设置镜像,在控制台通过 open ~ 命令找到 .bash_profile...

  • 环境变量

    声明:所有文章只作为学习笔记用,转载非原创BASH_ARGC linux下main(argc,argv[])中s...

  • flutter环境快速配置

    最近在学习flutter,做一些笔记吧。 flutter快速集成,几行命令搞定1、 open ~/. bash_p...

  • 0 Bash Reference Manual的学习笔记

    说明 此文集为本人为学习Shell而参考Bash Reference Manual期间所记录的笔记。由于原文档为英...

网友评论

      本文标题:bash学习笔记

      本文链接:https://www.haomeiwen.com/subject/dymfdktx.html