变量
unste 变量 撤销变量
$? 上一个执行的命令的状态 返回0无误 其他值有误
$$ 当前进程的 PID
在一个脚本文件 test.txt
echo $# 打印长度
echo $* 打印所有字符
echo $@ 打印所有字符
echo ${11} 打印第11个
执行脚本
sh test.txt 1 2 3 4 5 6 7 8 9 0 a b c d
执行结果
export MYTEST=333 定义一个环境变量
env | grep MY 在环境变量里筛选带 MY 字符的环境变量
脚本
在脚本的首行最好加入以下代码 向电脑解释这是一个shell文件
#!/bin/bash
touch test.txt 创建一个文件
vi test.txt 编辑文件
a=1234 给a赋值
b=${a/23/'x y z'} 把a的值赋给b 并把b的第二、三个字节替换为x y z
echo $a 打印a的值
echo $b 打印b的值
间接取值
a=1234
b=a
c=${!b}
把命令执行的结果赋给变量
a=`ls -l` ` 是esc下面的哪一个
将一个变量的值赋值给另外一个变量
变量=${变量} 大括号可以不带 带大括号提示这是一个变量
直接赋值是字符串 双括号包围才是数字
a=123 b=567
((c=a*2+b))
echo "c is:$c "
引号
a=`ls -l`
echo $a
echo "-----------------"
echo '$a'
echo "-----------------"
echo "$a"
不带引号 将结果的换行符替换成空格
单引号 打印引号里的内容
双引号 打印命令执行后的内容
a=`ls -l`
for a in $a; do
echo "=>$a"
done
执行后打印多个值
a=`ls -l`
for a in "$a"; do
echo "=>$a"
done
执行后打印一个值
case
#!/bin/bash
case $1 in
"1")echo"你输入的数字是1"
;;
"2")echo"你输入的数字是2"
;;
*)echo"你输入的是其他数字"
;;
esac
执行这段脚本
. test.txt 2 运行符号 文件名 数字
条件表达式
[ ]
[ -f "test.txt" ]
echo $?
输出 0 为真 其它为假
&& 与 前面为真执行后面
[ -f "test.txt" ] && echo "is file"
|| 或 前面为真后面不执行
[ -f "test.txt" ] || echo "is file"
test
#!/bin/bash
if test -f test.txt
then
echo "文件已存在"
else
echo "文件不存在"
fi
. test.txt
[[ ]]
[[ -d "test.txt" ]]
echo $?
结果为 1 错误