Linux下的shell编程(一)BY 四喜三顺
vim文本编辑器:i(插入模式),v(可视模式),Esc(普通模式),:w(保存),:r(打开),:q(退出)
gvim 文本编辑器vim的升级版
gedit 更常用的文本编辑器
gcc file1.c 编译file1.c文件
./a.out 显示结果
pwd 查看当前路径
sudo -i 切换到root目录(exit 回来)
cp -r /c /d 将目录c中的所有文件和目录复制到目录d中
find / -name file1.c
查找文件系统中名字为file1.c的文件
find /usr -name file1.c
查找usr文件夹中名字为file1.c的文件
man ls 查看ls的使用帮助
history 8
查看回溯8条操作指令
shell程序:将一系列linux程序通过流程控制写在一个文本文件中,由shell读取此文本文件并且依次执行文件中的这些程序
(1)gedit中输入代码,如:
#! /bin/bash
(所有均已#!开头,后跟执行此shell程序的shell解释器完整路径)
# name (注释以#开头)
echo
‘Hello‘
echo ‘this is a shell
file‘
(2)保存,文件名a.sh
(3)添加可执行权限 chmod +x a.sh
(4)运行程序
./a.sh
局部变量:=进行赋值,$用来访问,如:a=1.23 echo
$a
环境变量:一个用户的所有进程中都可访问的变量。export查看;echo $变量名,用来访问;export
XX=1234用来定义。
为了实现重启后仍然访问定义的环境变量,可在系统配置文件中进行定义。gedit /etc/profile
echo
输出文本或变量的值
read 从键盘或文件中读入信息,并赋给一个变量
文件重定向:
指令 > 文件名
将标准输出重定向到一个文件中
指令 >> 文件名 将标准输出以追加的方式重定向到一个文件中
指令 <
文件名 指令以文件作为标准输入
指令 < 文件名1 > 文件名2
指令以文件1作为标准输入,文件2作为标准输出
反引号(tab上面的键)用来执行引号中的系统命令,如 echo `date`或者 A=`ls`
echo $A
文件测试:
test -d /windows 测试windows是不是一个目录; test -x a.txt
测试文件a.txt是不是可执行
数值测试:2种方法
(1)test 第一个操作数 比较符 第二个操作数
(2) [ 第一个操作数
比较符 第二个操作数 ] ([后面一定有空格)
比较符包括:-eq(相等)
-ne(不想等)-le(小于等于)-ge(大于等于)-gt(大于)-lt(小于)
输入$?输出测试结果
字符测试:
(一)如果测试一个字符串是否为空,则:
(1)test
比较符 字符串
(2)[ 比较符 字符串
]
比较符为-z(是否是空字符)-n(是否是非空字符)
输入$?输出测试结果
(二)如果测试两个字符串是否相等,则:
(1)test
第一个字符串 比较符 第二个字符串
(2) [ 第一个字符串 比较符 第二个字符串 ] ([后面一定有空格)
比较符包括:=(相等)
!=(不想等)
输入$?输出测试结果
逻辑测试:
[ 表达式 比较符 表达式 ]
比较符包括:-a(与)-o(或)
!(非)
if语句:
(1) if
条件
then
命令1
fi
(2) if
条件
then
命令1
else
命令2
fi
(3) if
条件1
then
命令1
elif
条件2
then命令2
else命令3
fi
for语句
for
变量名 in 列表
do
命令1
命令2……
done
until语句
until 条件
do
命令1
……
done
例如:计算1到100的和
#!
/bin/bash
# sum.sh
sum=0
i=1
until
[ $i -gt 100
]
do
sum=$[$sum+$i]
i=$[$i+1]
done
echo
$sum
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。