bash相关知识
-
在 Windows Git Bash 中安装 bash-git-prompt需求我经常会在项目根目录中右键点开 Git Bash 进行一些命令行操作,默认窗口中会显示当前文件目录和 git 分支名,但我希望能看到更多信息,如是否存在未提交的修改、未推送的提交等,这样我在每天打开 bash 窗口后就能对当前项目的状态有个大概的了解。搜索我在网上查阅了一番,最终决定使用 bash-git-prompt。结果先放上最终的效果对比图:默认窗口安装 bash-git-prompt 后相关含义如下(详情查看 bash-git-prompt 官方说明):(master3|1): on branch master, ahead of remote by 3 commits, 1 file changed but not staged (status|2): on branch status, 2 fi
-
#!/bin/bash 与#!/bin/shhive脚本如下(日表):#!/bin/bash# /*% *************************************************************# *描述 MMENT: ---------------------------------#!/bin/bash是指此脚本使用/bin/bash来解释执行。其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径。bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,...我们可以通过以下一个示例来进行实验,了解#!/bin/bash的使用。1)#!/bin/bash只能放在第一行,如果后面还有#!,那么只能看成是注释。这里有三个脚本(脚本都要使用”chmod +x scriptname“命令来获得可执行权限):tbash1.sh:#!/bin/shsource abcecho "hello
-
善用Bash history 命令大家好,我是良许 相信大家平时都有用 history 命令来查看命令历史记录,但是实际上 history 命令并非只有这个功能,history 还有很多有用的功能。尤其是 Bash 版本的 history 命令,它所提供的功能比所有其他的 Linux Shell history 命令所提供的都要多。 Bash 的历史悠久,是一个古老的 Shell ,并且它还有一个更古老的前身 the Bourne Shell (sh) 。因此,Bash 的 history 命令是所有的 Linux Shell history 命令中功能最丰富的。Bash 版本的 history 命令
-
Shell 编程:Bash空格的那点事先了解下bash中什么时候该用空格,什么时候不该用。1. 等号赋值两边不能有空格2. 命令与选项之间需要空格3. 管道两边空格可有可无我们来看看常见的问题1. 赋值时等号两边或者只有左边多了空格test@pythontab.com ~ $ var1 = test bash: var1: command not found test@pythontab.com ~ $ echo ${var1:?error} bash: var1: error test@pythontab.com ~ $ echo ${var1?error} bash: var1: error test@pythontab.com ~ $ var2 =test bash: var2:&n
bash相关课程
bash相关教程
- 2.2 test 命令简介 test 命令test 为 Shell 内置命令,其通常需要与 if 语句一块使用。语法格式语法格式为 test expression, 当 test 判断 expression 为成立时,返回状态为 0,否则为非 0 值。test 命令还可以简写为 [ ], 需要在两边中括号与 expression 是有一个空格,这个空格是必须的,否则会导致语法错误。[] 的写法更加简洁,比 test 使用频率更高。我们可以简单来看示例:[root@master shell_test]# cat test1.sh #!/bin/bash// 使用中括号if test 10 -ne 1;then echo "true"else echo "false"fi[root@master shell_test]# bash test1.sh true[root@master shell_test]# cat test2.sh #!/bin/bash// 使用testif [ 10 -eq 1 ];then echo "true"else echo "false"fi[root@master shell_test]# bash test2.sh true
- 1.2 Shell 脚本结构 Shell 脚本在其中的第一行需要有指明解释器,在上面 CLI Shell 中的那些解释器,都可以写,在以./install_mysql.sh 的时候,此时就是利用脚本中第一行的解释器来运行脚本,其格式为#!Shell解释器,例如#!/bin/bash, 但是这种方式存在一定的局限性,我们推荐使用 env 环境变量中的 bash,推荐使用这种方式#!/usr/bin/env bash。
- 4.4 测试 当我们不输入任何参数,或输入单个参数的时候,提示输入参数错误,至少输入一个数字;如果输入有包含字符串,则提示参数不规范;当输入一些列数字的时候,可以得到正确的结果。[root@master shell_test]# bash num_check.sh 输入参数错误,至少输入一个数字[root@master shell_test]# bash num_check.sh 1输入参数错误,至少输入一个数字[root@master shell_test]# bash num_check.sh 1 "hell"输入的hell不符合参数规范[root@master shell_test]# bash num_check.sh 12 13 32 435 0输入的参数总共为:5输入的数字为:12 13 32 435 0其中最大的数字为:435其中最小的数字为:
- 2.1 显式指定解释器执行 [root@shell workspace]# lltotal 4-rw-r--r-- 1 root root 44 Sep 3 14:16 01-scripts.sh[root@shell workspace]# cat 01-scripts.sh #!/bin/env bash# Description: /mybin/myvim scripts# Auth: kaliarch# Email: kaliarch@163.com# Date: 2020-02-15 13:36# Version: 1.0echo "this is my first script"cd /[root@shell workspace]# bash 01-scripts.sh this is my first script在当前 bash 环境下,当前终端登录的 Shell 为父 Shell,此种方式为在当前 Shell 下再启动一个子进程来运行 Shell 脚本。Tips: 此方法直接在终端指定解释器来执行脚本,此时的解释器为终端指定的,不使用脚本内第一行指定的解释器执行,直接指定解释器,此时不需要为脚本添加可执行权限。
- 3.3 实现 #!/bin/bash# Description: count file scripts# Auth: kaliarch# Email: kaliarch@163.com# function: count file# Date: 2020-03-08 14:00# Version: 1.0# 判断输入参数[ $# -ne 1 ] && echo "输入参数错误,${0} check_dir" && exit 1# 判断输入的是否为存在的目录,不存在则退出CHECK_DIR=$1[ ! -d ${CHECK_DIR} ] && echo "检测系统不存在目录:${CHECK_DIR}, 请输入正确的目录" && exit 1# 对目录下的文件进行统计DIR_NUM=0FILE_NUM=0OTHER_NUM=0for item in ${CHECK_DIR}/*do if [ -d ${item} ];then # 如果为目录,则目录总数加一 DIR_NUM=$((${DIR_NUM}+1)) elif [ -f ${item} ];then FILE_NUM=$((${FILE_NUM}+1)) else OTHER_NUM=$((${OTHER_NUM}+1)) fidoneecho "检测目录为:${CHECK_DIR}"echo "文件类型数量为:${FILE_NUM}"echo "目录类型数量为:${DIR_NUM}"echo "其他类型数量为:${OTHER_NUM}"[root@master scripts]# bash count_file.sh 输入参数错误,count_file.sh check_dir[root@master scripts]# bash count_file.sh aaaa检测系统不存在目录:aaaa, 请输入正确的目录[root@master scripts]# bash count_file.sh /tmptmptmp检测系统不存在目录:/tmptmptmp, 请输入正确的目录[root@master scripts]# bash count_file.sh /检测目录为:/文件类型数量为:0目录类型数量为:23其他类型数量为:0[root@master scripts]# bash count_file.sh /root检测目录为:/root文件类型数量为:8目录类型数量为:5其他类型数量为:0[root@master scripts]# bash count_file.sh /dev/检测目录为:/dev/文件类型数量为:1目录类型数量为:19其他类型数量为:139当我们不输入任何参数的时候,提示需要输入一个路径参数,输入了文件名称或不存在的路径时,文件测试运算符判断输入异常,不是一个有效的文件目录。当我们输入正常的目录时,即可获得正确的目录或文件数。
- 5. 实例 我们通过简单编写一个获取当前用户登录信息的脚本,来展示目前登录用户的信息[root@master Shell_var]# cat login_info.sh #!/bin/bash# Description: login info scripts# Auth: kaliarch# Email: kaliarch@163.com# function: show user info# Date: 2020-03-08 13:36# Version: 1.0echo "当前登录系统用为: ${USER}"echo "当前登录系统时间: $(date +"%Y-%m-%d %H:%M:%S")"echo "当前登录系统Shell: ${Shell}"echo "当前用户家目录为: ${HOME}"# 运行脚本查看内容[root@master Shell_var]# bash login_info.sh 当前登录系统用为: root当前登录系统时间: 2020-03-08 12:16:04当前登录系统Shell: /bin/bash当前用户家目录为: /root
bash相关搜索
-
back
backbone
background
background attachment
background color
background image
background position
background repeat
backgroundcolor
backgroundimage
background属性
badge
bash
basics
basis
bat
bdo
bean
before
begintransaction