Bahs shell script

栏目: Java · 发布时间: 5年前

内容简介:当执行shell命令的时候,会调用该软件,调用预先预留好的接口,执行相关操作。一般使用的是bin/bash环境变量的取用,使用echo命令,达到变量的取用目的

什么是shell

当执行 shell 命令的时候,会调用该软件,调用预先预留好的接口,执行相关操作。

关于shell

一般使用的是bin/bash

shell 变量

环境变量

环境变量的取用,使用echo命令,达到变量的取用目的

例如

ming@ming-pc-xiao:/var/lib/dpkg$ echo ${PATH}
/home/ming/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin

设置变量

设置单一变量其名字为ming

ming@ming-pc-xiao:/var/lib/dpkg$ name=ming
ming@ming-pc-xiao:/var/lib/dpkg$

修改变量

ming@ming-pc-xiao:/var/lib/dpkg$ echo $PATH
/home/ming/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/dmtsai/bin:/home/dmtsai/bin
ming@ming-pc-xiao:/var/lib/dpkg$
ming@ming-pc-xiao:/var/lib/dpkg$ name=$name
ming@ming-pc-xiao:/var/lib/dpkg$ name=$name:minh
ming@ming-pc-xiao:/var/lib/dpkg$ echo $name
ming:minh
ming@ming-pc-xiao:/var/lib/dpkg$ name={$name}ming
ming@ming-pc-xiao:/var/lib/dpkg$ echo $name
{ming:minh}ming
ming@ming-pc-xiao:/var/lib/dpkg$

env

使用env命令可以列出所有的环境变量

ming@ming-pc-xiao:/var/lib/dpkg$ env | grep home
ZEITGEIST_DATA_PATH=/home/ming/.local/share/zeitgeist
HOME=/home/ming
PATH=/home/ming/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/dmtsai/bin:/home/dmtsai/bin
ming@ming-pc-xiao:/var/lib/dpkg$

其中输出的为使用的主目录

$本身也是一个变量

关于bash本身

登录 linux 以后,取得一个bash,其bash为一个独立的应用程序。

这个程序为一个程序识别码,为PID,当子进程执行的时候,父进程处于sleep状态。

所有的程序都是由父进程衍生来的。

即,子程序会继承父程序的环境变量。

变量赋值

让使用者输入变量,进行赋值

ming@ming-pc-xiao:~$ read atest
ming
ming@ming-pc-xiao:~$ echo $atest
ming
ming@ming-pc-xiao:~$

在30秒内输入,然后其变量进行赋值

ming@ming-pc-xiao:~$ read -p "Please keyin your name: " -t 30 named
Please keyin your name:

环境配置文件

/etc/profile

当登录shell的时候,会读取该文件

/etc/profile

该文件将会设置目录

在读取完成以后,将会调用~/.profile,

管道命令

数据流。既传送给目录,右传送给设备

ming@ming-pc-xiao:~$ ls -l /home |  tee ~/homefile |  more
总用量 4
drwxrwxrwx 57 ming ming 4096 2月  19 05:02 ming
ming@ming-pc-xiao:~$ cat ./homefile 
总用量 4
drwxrwxrwx 57 ming ming 4096 2月  19 05:02 ming
ming@ming-pc-xiao:~$

shell script

hello world

全部如下

#! /bin/bash
# Program:
#    这是shell命令的hello world
# 时间  2018年02月19日
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
# 设置环境变量
export PATH
# 输出 其中e为转义字符
echo -e  "hello world" \a \n
# 退出脚本
exit 0
~                                                                               
~

执行效果如下

ming@ming-pc-xiao:~$ sh ./hello.sh 
-e hello world a n
ming@ming-pc-xiao:~$

一些栗子

根据输入者输入的内容,保存相关内容

ming@ming-pc-xiao:~$ sh ./showname.sh   rr  ee
请输入您的姓名rer
请输入第二个名字trtg

rer trtg

ming@ming-pc-xiao:~$
#! /bin/bash
# Program:
# 输入使用者的姓名
# History:
# 2018/02/19
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

read -p "请输入您的姓名" firstname  # 提示输入
read -p "请输入第二个名字" lastname
# 输出结果
echo  "\n${firstname} ${lastname}\n" 
~

执行方式的差别

直接执行

ming@ming-pc-xiao:~$ sh ./showname.sh   rr  ee
请输入您的姓名rer
请输入第二个名字trtg

rer trtg

这样可以进行直接执行

test指令测试

ming@ming-pc-xiao:~$ test -e /dmtsai && echo "exist" || echo "Not exist"
Not exist
ming@ming-pc-xiao:~$

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

科技投资新时代:TMT投资方法、趋势与热点聚焦

科技投资新时代:TMT投资方法、趋势与热点聚焦

马军、宋辉、段迎晟 / 人民邮电出版社 / 2018-3 / 69.00

中国 TMT 行业(科技、媒体及通信)起步较晚但充满朝气。2017 年,TMT 板块的IPO 数量占到了总数的四分之一;对于投资者来说,投资 TMT 的收益非常可观。那么,TMT 的投资趋势如何? TMT 行业又有哪些投资热点? 本书立足于 TMT 投资现状,在介绍了 TMT 投资的基本概念之后,作者详细讲述了TMT 投资的基本研究方法、分析视角、整体行情及趋势分析,同时从行业视角分析了包括......一起来看看 《科技投资新时代:TMT投资方法、趋势与热点聚焦》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具