shell编程
表达式
A=$((experssion))
A=$[experssion] #中括号前后都要有空格
A=`expr experssion`;#这里运算符需要转义,运算符两边要空格
条件判断
= #字符串比较
-lt # <
-le # <=
-eq # ==
-gt # >
-ge # >=
-ne # !=
循环
for 变量 in 值1 值2 值3...
do
代码
done # 结束
for(( 初始值; 控制条件; 变量变换 ))
do
代码
done
while [ 条件判断 ]
do
代码
done
read
read(选项)(参数)
-p # 指定读取值时的提示符
-t # 指定等待时间,如果到时未读入,则不再等待
示例:
echo "你好~"
if [ $1 -eq 5 ]
then echo "eq"
elif [ $1 -gt 5 ]
then echo "gt"
else echo "le"
fi
#$* take parameter of input into entirety
for i in "$*"
do
echo "num is $i"
done
#$@ is used separately
for j in "$@"
do
echo "num is $j"
done
SUM=0
for(( i=1; i<=100; i++ ))
do
SUM=$(($SUM+$i))
done
echo $SUM
read -p "input something:" NUM1
echo "your input is $NUM1"
函数
[ funtion ] funname[()]
{
Action;
[return int;]
}
Linux 命令
cat
查看test test1两个文件的内容
cat test test1
创建一个名为test2的文件、
cat >test2
等待用户输入,键入所需的文本,然后按CTRL + D(按住Ctrl键并键入“ d ”)退出。文本将写入test2文件中。您可以使用以下cat命令查看文件的内容。
cat test2
hello everyone, how do you do?
如果具有大量内容的文件无法容纳在输出终端中,并且屏幕快速滚动,则可以通过cat命令使用越来越多的参数,如上所示。
cat song.txt | more
cat song.txt | less
使用-n选项,您可以在输出终端中看到文件song.txt的行号。
cat -n song.txt
1 "Heal The World"
2 There's A Place In
3 Your Heart
4 And I Know That It Is Love
5 And This Place Could
6 Be Much
7 Brighter Than Tomorrow
8 And If You Really Try
9 You'll Find There's No Need
10 To Cry
11 In This Place You'll Feel
12 There's No Hurt Or Sorrow
可以使用-e选项看到’ $ ‘出现在行尾,如果各段之间有间隙,则显示’ $ '。此选项对于将多行压缩为一行很有用。
cat -e test
hello everyone, how do you do?$
$
Hey, am fine.$
How's your training going on?$
$
我们可以将文件的标准输出重定向到新文件,或者使用’ > '(大于)符号将其重新存在。小心,test1的现有内容将被测试文件的内容覆盖。
cat test > test1
在现有文件中附加’ >> '(大于1的符号)。这里,测试文件的内容将附加在test1文件的末尾。
cat test >> test1
将两个文件的内容输入到test3中
cat test1 test2 > test3
sed
sed 命令的基本格式如下:
sed [选项] [脚本命令] 文件名
选项 | 含义 |
---|---|
-e | 脚本命令 |
-f | 脚本命令文件 |
-n | 默认情况下,sed 会在所有的脚本指定执行完毕后,会自动输出处理后的内容,而该选项会屏蔽启动输出,需使用 print 命令来完成输出。 |
-i | 此选项会直接修改源文件,要慎用。 |