Bahs shell script

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

内容简介:当执行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:~$

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

查看所有标签

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

网站重构

网站重构

[美] Jeffrey Zeldman / 傅捷、王宗义、祝军 / 电子工业出版社 / 2005-4 / 38.00元

这本书是为了希望自己的网站成本变得更低,运行得更好,访问者更多的网页设计师、开发者、网站所有者及管理者写的。 书中着重分析了目前网站建设中存在的一些问题,以及“Web标准”思想的产生、发展和推广,并从技术细节上讲解了网站实际制作和开发的过程中如何向Web标准过渡,如何采用和符合Web标准。本书的出版目的就是帮助读者理解Web标准,创建出用最低的费用达到最多的用户,并维持最长时间的网站,并且提......一起来看看 《网站重构》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换