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博客搬运 文章被收录于专栏

CSDN博客搬运

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务