内容简介:当执行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:~$
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。