Linux入门&Shell语法
文章目录
Linux入门&Shell语法
最近开始实习,所在组基于Linux进行开发,这逼迫自己补补Linux的漏洞,发现这个网站特别好用,基本上该有的都有,后续可以做一个参考,这篇记录一下学习过程中的笔记
Shell变量名定义的时候,不需要加美元符号,使用的时候需要;
使用的时候,大括号是为了帮助编译器识别变量的边界;
双引号里面的变量会被翻译,单引号里面的变量不会被翻译;
注释一般使用#,多行注释,使用:<< EOF 注释的内容 EOF
Shell传递函数
$0 表示文件名
$1表示第一个参数,以此内推
$# 传递的参数总个数
∗ 与 * 与 ∗与@的区别: 在使用 ∗ 的 时 候 , " ∗ *的时候,"* ∗的时候,"∗*“表示将所有的参数合起来作为一个参数,而”$@"则是返回之前的多个参数
Shell运算符
算数运算符
expr
注意:’\*‘表示乘号
#!/bin/bash
a=10
b=20
if [ $a -eq $b ]
then
echo "$a = $b"
else
echo "$a != $b"
fi
出现了这个提示:
-bash: ./testBash.sh: Permission denied
究其原因是:没有增加权限。
chmod 777 ./testBash.sh
chmod 777 file 改变文件的读写权限
chmod +x file 改变文件的执行权限
关系运算符
布尔运算符
!
非
-o
或
-a
与
逻辑运算符
&&
与
||
或
字符串运算符
=
相等
!=
不等
-z
检测字符长度是否为零
-n
检测字符长度是否不为零
$
检测字符串是否为空
文件测试运算符
-r $file
文件是否可读,可读就返回true
file="./testBash.sh"
if [ -r $file ]
then
echo "file can be read"
fi
貌似只能使用文件路径来判断
Shell echo 命令
read name
读取输入,使用的时候,添加美元符号
-e
开启转义,例如echo -e "$name \n"
会换行
-c
不换行
也就是,echo会自动换行,然后开启转义,可以使用\n
来换行,使用\c
可以关闭echo的自动换行
echo "it is a test" > myfile
将结果写到文件,文件不存在的话,会自动创建,若文件存在,会将之前的结果擦除
>
重定向输出,替换原有内容
>>
重定向的时候是在文件末尾添加内容
echo data
显示命令的执行结果
Shell printf 命令
基本上和c的printf类似,不会自动添加换行
Shell test
用于检查某个条件是否成立,可以进行数值、字符、文件三个方面的测试
待续…
CSDN博客搬运