下面我将列出shell中比较常用的命令及操作:
1:赋值命令:
var=7 or var=/home/test/* or var=/home/icon(!!!不能再等号旁边加空格)
2:使用变量或者设置变量要加入$修饰符:
test=$var //test=7
a : 进行数学运算的赋值动作:
test=$[ $var + 8 ] //注意[]里面左右一定要加空格不然会报错(以为新司机的忠告)
b : 表示输入的参数值
$0:表示文件名,$1:表示输入的第一个参数,$2,$3,依次类推
c : 表示参数数量的语句 $#
假如有./index.sh 5 8 9 0 0 9
那么$#输出就是6
d : $()格式:
testing=`date`
testing=$(date)将会输出输出当前时间
e: $'\n'
在改变字段的分隔符的时候用到$'\n'
表示会以换行符为分割字符的依据
关于$的用户就总结到这,以后遇到再补上
3:比较变量:
a: 比较数值型的变量:利用-gt(greate than) -lt(letter than) -eq(equal) -ne(not equal) 比较变量之间的大小关系:
例如:
#!/bin/bash
var=3
if [ $var -gt 2 ]
then
echo "var is bigger than 2"
else
echo "var is letter than 2"
fi
上面的代码就是比较两个数值的大小关系
b:比较字符串:
#!/bin/bash
var="adc"
str="bcd"
f [ $var \> $str]
then
echo "var is bigger than str"
else
echo "var is letter than str"
添加-n 和-z可以检查一个变量是否有数据:
#!/bin/bash
var="adc"
str="bcd"
if [ -n $var ]
then
echo "var is not empty"
else
echo "var is empty"
if [ -z $str ]
then
echo "str is not empty"
else
echo "str is empty"
4:比较文件
test命令的文件比较功能
-d file是否存在这一个目录
-e file检查file是否存在
-f file是否存在这一个文件
-r file该文件是否可读
-s file
该文件是否为非空
-w
file 该文件是否可读
-x
file 该文件是否可以执行
-O file 检查file是否存在并属于当前用户所有
-G file是否存在并且默认组与当前用户形同
file1 -nt file2检查file1 是否比file2新
file1 -ot file2检查file1 是否比file2新
5:结构化命令
a: if-then-else命令
前面相关代码已经有所演示:注意if [ ]里面的左右两边的空格一定要加上,然后就是if语句的闭合 if .....fi
b: for var in list
do
commands
done
eg:
for test in "test" "var" "beijing" "hello"
do
echo $test
done
这里的双引号是避免如果想输出wilan ad这样由空格连着的字符而使用的,不然的话shell默认会以
1:空格 2:回车符 3:换行符作为分割字符串的依据
不过你也可以用 IFS 自定义一个分隔符样式
IFS 是shell中的环境变量可以设置为:IFS=$'\n' or IFS=$':'
c :while命令的基本格式
while test command
do
other commands
done
eg:
var=10
while [ $var -gt 0 ]
do
echo $var
var=$[ $var - 1 ]
done
d:until 命令:判断结束时候的临界点
基本格式:
until test commands
do
echo $var
done
eg:
#!/bin/bash
var=100
until [ $var -eq 0 ]
do
echo $var
var=$ [ $var - 1 ]
done
今天就写这么多得好好的消化一下子了!努力
6:脚本的执行:
3中方式可以执行脚本程序:source ,shscript, ./script
a:直接执行的方式运行script,它会建立一个新的bash子进程,父进程无法获取script中的变量的值
b:利用source来执行脚本:它是在父进程中执行的
source test.sh
里面的变量first,second 可以在父进程中显示 $first $second 都是有显示的
这也是为啥你不注销系统而要让某些写入 ~/.bashrc的设置生效时,需要使用source ~/.bashrc 而不能使用bash ~/.bashrc