Bash 入门(搬运)

2018-06-18  本文已影响0人  lekf123
  • 声明:
    内容系搬运自他人文章和自己整理
    不是完整教程,只是用到的几个点的记录
    好坏请自己甄别

参考文章和相关教程

[1]:Shell 入门指南


记录

终端(Bash)基本操作

作为执行 shell 脚本的程序,bash 的交互式版本有的时候甚至比 shell 本身还更常用,毕竟登录到远程服务器,面对的就是一个闪动的光标,也就是 bash 了。我们就先来了解一下 bash 基本的操作,这样在测试命令的时候就会方便许多。

所谓操作,其实就是各类快捷键,这里挑些常用的介绍一下,一句话:熟能生巧(这里为了显示的时候好看,字母都用大写,实际上操作的时候,用小写即可)

  • Tab 能够自动补全,从命令名称到文件夹到路径,多按两下还能出个列表方便我们输入,是居家旅行必备操作,如果只能记住一个快捷键,那么记住 Tab 即可
  • Ctrl+R 用来搜索,按下之后就可以输入搜索的关键词,再按一次 Ctrl+R 可以切换到下一个匹配的结果,如果找到合适的,按下 Enter 就可以执行,按下 → 会把查询结果放到当前行,我们可以进行编辑
  • Ctrl+W 删除该行最后一个单词,至于怎么定义一个单词呢?常见的分隔符有 空格, _, ,, :, - 等等(基本上不是字母和数字就可以认为是分隔符)
  • Ctrl+U 删除整行
  • Ctrl+A 将光标移到行首
  • Ctrl+E 将光标移到行尾
  • Ctrl+K 删除从光标处到行尾的所有内容
  • Ctrl+L 清屏
  • 输入 history 可以查看命令行的历史
  • 输入 !$ 查看最后输入的参数
  • 输入 !! 查看上一条命令
  • 输入 cd - 可以回到上一个工作路径

如果想要设定 bash 的提示文本,需要修改 ~/.bashrc 中的 PS1 环境变量
好!

格式化输出/打印 printf

除了 echo 命令,我们其实还可以用 printf 命令来进行格式化输出,不过需要注意的是这里我们需要自己添加换行符,我们在脚本文件 test.sh 中添加如下三行:

printf "%-5s %-10s %4s\n" No. Name Score
printf "%-5s %-10s %4.2f\n" 1 wdxtub 99.9999
printf "%-5s %-10s %4.2f\n" 43 dawang 66.6566

然后我们执行一下,结果是:

$ ./test.sh
No.   Name       Score
1     wdxtub     100.00
43    dawang     66.66

这里能学到的套路是什么呢?

算术比较

条件通常被放置在封闭的中括号内,一定要注意 [ 和 ] 脸变有空格!如果我们需要进行算术比较,就需要使用如下的比较符号

-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
-eq 等于
-ne 不等于
-a 逻辑与,例如 [ $var -ne 0 -a $var2 -gt 2 ]
-o 逻辑或,例如 [ $var -ne 0 -o $var2 -gt 2 ]

一个实际的例子:检测是否是超级用户

if [ $UID -ne 0 ]; then
    echo "你不是超级用户(root),请以 root 身份运行"
else
    echo "当前是超级用户"
fi

条件流程

比较常用的就是 if 的套路,格式为

if condition;
then
    commands;
elif condition;
then
    commands;
else
    commands
fi

如果觉得这样写太长,可以利用逻辑操作与短路原理来进行编写

# 如果 condition 为真,则执行 action
[ condition ] && action;  
# 如果 condition 为假,则执行 action
[ condition ] || action;

函数

函数的定义和非常简单,比如

function foo()
{
   echo "Arguments work just like script arguments: $@"
   echo "And: $1 $2..."
   echo "This is a function"
   return 0
}

也可以省略 function 关键词,比如

bar ()
{
   echo "Another way to declare functions!"
   return 0
}

执行的话,直接输入函数名即可,比如

foo
bar
foo hello world
上一篇 下一篇

猜你喜欢

热点阅读