海牛部落 Linux 系列教程:(8) Shell 编程

教程 青牛 ⋅ 于 2017-09-22 15:44:28 ⋅ 最后回复由 去吧皮卡丘 2023-09-08 16:32:17 ⋅ 15649 阅读

1 Vim 编辑器

1.1 vim 常用命令

file

file

file

1.2 针对程序员的vim 配置
配置方式:
/etc/vimrc 全局配置
~/.vimrc 用户级配置
~/.viminfo 自动记录编辑文件的光标位置、搜索词等等

常用配置:
set nu 开启显示行号
set nonu 关闭显示行号
set autoindent 开启自动缩进排版
set noautoindent 关闭自动缩进排版
syntax on 开启语法高亮
syntax off 关闭语法高亮
set ts=4 使用4个空格替换tab
set expandtab
set bg=dark 或 set bg=light 设置颜色方案,默认是light

file

2 第一个程序:HelloWorld

file

其中:
第一行:#! 开头,指定脚本的运行环境。
第二行:#开头,养成良好的注释习惯,这里一般说明脚本功能、作者、修改历史等等
echo ,把其参数传递给标准输出。

执行脚本需要 hello 文件有执行权限,设置hello 文件的执行权限

file

3 变量和运算符

3.1 变量赋值和使用

file

其中:
1)变量名首字符必须为字母,名字只能用字母、数字、下滑线,不要用bash关键字。非法的名字:8var、var-8
2)变量定义或赋值时,变量名与值之间用等号连接:变量名=值,等号两边不能有空格,值中有空格或特殊字符需要用双引号或单引号引起来。
3)使用 $变量名 或 ${变量名} 形式获取变量值

file

3.2 变量替换
美元符号$ ,如果想输出$ 符号,则要用“\” 进行转义。
示例:
var1 文件内容如下

file

file

file

file

file

3.4 bush 引号规则
1)单引号‘’:单引号里面的所有字符都是普通字符。
2)双引号“”:双引号会保留变量特性,用值替换。
3)倒引号··:位于Esc 键下方,用倒引号括起一个命令时,这个命令将会被执行,执行后的结果作为这个表达式的值。

file

file

3.5.2 数组使用
获取数组长度:用${#数组名[@或]} 可以得到数组长度
${#arr[
]} 或 ${#arr[@]}

读取数组元素:
读取下标为1的元素:${arr[1]}

读取数组整个元素:${arr[*]}

给数组元素赋值:
arr[1]=1

删除数组元素:
删除后,数组长度改变
unset arr[1]
${#arr[*]}

数组切片:
直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开。
${arr[@]:0:2}

如果加上”()”,将得到切片数组

c=(${arr[@]:0:2})
${c[*]}

file

file

file

其中:
$(()) 方式:内部不允许有空格
$[] 方式:内部一定要有空格。
expr 方式:expr 的表达式要用倒引号括起来

file

3.6.2 比较运算符
3.6.2.1 数字比较

file

注意:
[[]] 方式:可以直接用不需要转义,转义也不错。
[[ 2 -eq 2 ]] && echo 'ok' 与 [[ 2 == 2 ]] && echo 'ok' 是等效的。

file

file

示例:
test "aaa" == "aaa" && echo 'ok'
[ "aaa" == "aaa" ] && echo 'ok'
[[ "aaa" == "aaa" ]] && echo 'ok'

file

file

示例:
test ! 3 -eq 4 && echo 'ok'
[ ! 3 -eq 4 ] && echo 'ok'
[[ ! 3 == 4 ]] && echo 'ok'

file

file

示例:
如果f4 是文件则显示ok
[root@localhost shelltest]# test -f f4 && echo 'ok'
ok
[root@localhost shelltest]# [ -f f4 ] && echo 'ok'
ok
[root@localhost shelltest]# [[ -f f4 ]] && echo 'ok'
ok

file

file

file

file

file

file

file

file

示例:
从键盘接收用户名,
如果用户名等于“aaa” ,则欢迎aaa

如果用户名等于“bbb” ,则欢迎bbb

否则输出用户名不存在

file

file

file

示例:
根据键盘输入的命令,执行相应命令。
如:ll : ls - l
la: ls -a
lrt : ls -lrt
其他:ls

file

file

file

file

file

file

file

file

循环条件为真(值为非0)执行循环体;
循环条件为假(值为0)退出循环体;

示例:

回复帖子,然后刷新页面即可查看隐藏内容

版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海汼部落-青牛,http://hainiubl.com/topics/173
本帖由 情爱侣 于 6年前 取消置顶
回复数量: 71
暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter