bash学习笔记

2020-08-07  本文已影响0人  nemo_test

快捷键操作

变量

$ a=foo
$ echo $a_file


$ echo ${a}_file
foo_file
${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
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))"
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,直到文件读取完毕。

if结构

if commands; then
  commands
[elif commands; then
  commands...]
[else
  commands]
fi
上一篇 下一篇

猜你喜欢

热点阅读