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:~$

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

查看所有标签

猜你喜欢:

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

程序员修炼之道

程序员修炼之道

[美]享特 / 人民邮电出版社 / 2007-12 / 49.00元

《程序员修炼之道》适合各层次软件开发人员阅读,也适合高等院校计算机专业学生和教师阅读。一起来看看 《程序员修炼之道》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具