#在改变桌面分辨率的时候遇到问题 桌面背景模糊 改变色彩深度解决问题
#echo换行 需要加上参数-e
#变量被引用需加上符号#
下面写一个简单的Shell脚本,在/home目录下创建一个Shelltest的文件夹
#!/bin/sh
#This is mkdir
cd /home
mkdir Shelltest
echo "Shelltest is created."
要注意Shell中的特殊符号
1、注释符#
除了#!/bin/bash里的#特殊
2、美元符 $
变量符。与反斜杠转义符相反,使其后的普通字符作为变量名,如$a表示变量a的值。变量字符长度超过1个时,用{}括起来
3、单引号
被引起的字符全部做普通字符,即全部原样
echo ‘my $SHELL’
4、双引号
引号内的内容,除$、转义符\、倒引号`这三个保留特殊功能,其他字符均做普通字符。
5、倒引号(数字1键旁边的那个键)
引号内的字符串当做shell命令行解释执行,得到的结果取代整个倒引号括起来的部分。
写一个例子
#!/bin/sh
echo 'my home is $home'
echo "my home is $home"
echo `my home is $home`
echo "my home is `pwd`"
echo 'my home is `pwd`'
输出结果:
因为第三行echo `my home is $home`
不可以执行所以会报错
写一个shell,判断文件是否存在 并检测语法是否真确:
#!/bin/sh
if [ $# -ne 1 ]
then echo "Usage -$0 filename"
elif [ -f $1 ]
then echo "$1 is exist!"
else echo "$1 is not exist!"
fi
下面写一个程序熟悉内部变量使用:
#!/bin/sh
echo "当前程序的名字是$0"
echo "共输入$#个参数,全部参数是$@,第一个参数是$1"
echo "当前进程的pid是$$"
echo "执行完毕,返回值是$?"
写一个计算器 输入两个数和一个操作符能进行加减乘除四则运算
#!/bin/sh
echo "please enter the first number:"
read a
echo "please enter the second number:"
read b
echo "please enter the opertion"
read opt
result1=$[ $a ${opt} $b ]
result2=$(( $a ${opt} $b ))
result3=`expr $a "\${opt}" $b` 当一个字符有特殊含义,需要在前面添加反斜线,防止shell误读,屏蔽特殊含义
如& * + … ^ $ ` " | ?
echo "the result1 of $a $opt $b = ${result1}"
echo "the result2 of $a $opt $b = ${result2}"
echo "the result3 of $a $opt $b = ${result3}"
其中result1,2,3分别采用不同的方法运算:
$[ a + b ]
$(( a + b ))
`expr a + b` 注意空格!
运行结果: