shell变量




变量

环境变量

printenv

本地变量

python@ubuntu:~/0829$ diner='dimples'
python@ubuntu:~/0829$ set | grep "diner"
diner=dimples

把本地变量变成环境变量:

python@ubuntu:~/0829$ export diner
python@ubuntu:~/0829$ env | grep "diner"
diner=dimples

or:

python@ubuntu:~/0829$ export xiaohua=23
python@ubuntu:~/0829$ env | grep xiaohua
xiaohua=23
  • 删除已经定义的环境/本地变量:
unset xiaohua
  • 查看当前的shell类型
python@ubuntu:~/0829$ echo $SHELL
/bin/bash
  • 取变量加$
python@ubuntu:~/0829$ echo $diner
dimples
python@ubuntu:~/0829$ echo diner
diner

文件名代换 : * ? []

python@ubuntu:~/0829$ ls *
t1.sh
python@ubuntu:~/0829$ ls [abct]?.th
ls: 无法访问'[abct]?.th': 没有那个文件或目录
python@ubuntu:~/0829$ ls [abct]?.*
t1.sh

命令代换: '或$()

python@ubuntu:~/0829$ date
20171004日 星期三 16:43:57 CST
python@ubuntu:~/0829$ DATE=date
python@ubuntu:~/0829$ echo $DATE
date
  1. 加$()
python@ubuntu:~/0829$ DATE=$(date)
python@ubuntu:~/0829$ echo $DATE
20171004日 星期三 16:45:02 CST
python@ubuntu:~/0829$
  1. 注:两个反引号(~键),不是单引号
python@ubuntu:~/0829$ DATE=`date`
python@ubuntu:~/0829$ echo $DATE
20171004日 星期三 16:51:01 CST

t1.sh中执行

DATE=$(date)
echo $DATE

算数带换: $(())

python@ubuntu:~/1004$ VAR=50
python@ubuntu:~/1004$ echo $((VAR+4))
54

转义字符\

  • 创建一个文件名以-号开头的文件
touch -- -hello

rm -- -hello   删除
~/1004$ touch -- -hello
python@ubuntu:~/1004$ ls
-hello  th.sh

单引号or双引号

python@ubuntu:~/1004$ echo "$DATE"
20171004日 星期三 19:02:47 CST
python@ubuntu:~/1004$ echo '$DATE'
$DATE





你可能感兴趣的:(shell)