shell编程学习记录一

操作电脑硬件的是操作系统,linux内核真正的理解的是对计算机底层cpu要做什么操作?
在这里插入图片描述
于是就有解释层:包在外部的壳。
linux执行命令的时候使用的都是bash

脚本开头一般指定当前的解析器

#!/bin/bash
echo “hello world”

执行命令:

1.bash 路径hello.sh 或者 sh hello.sh

2.使用路径来进行执行 相对路径和绝对路径 ./hello.sh 这种方式打开了子bash,当文件里的变量是全局变量的时,子bash也可以查看

3.source hello.sh . hello.sh source 不打开另外一个shell,没有父子shell的嵌套环境

子shell里设置的环境变量在父shell里是不可见的
shell里的变量一大类是系统定义好的,一大类是用户定义的
全局变量和局部变量

env

查看当前系统帮我们定义的全局环境变量的值

printuser USER

不需要加$直接查看环境变量的值

set

查看系统设置的全部变量

unset

删掉变量,但是只读变量不能被删除

自定义变量:变量名= 变量值(等号前后不能有空格)

my_var =100
echo $my_var
以上定义的是局部变量

那么如何定义全局变量呢?
export

export

export my_var 声明其是全局变量

ps -f

使用ps-f命令查看到底是在父进程还是在子进程中
在这里插入图片描述
图片显示在子子进程中

exit

在子进程中退出,回到父进程

定义变量的值默认是字符型,不是数值。想要进行数值的计算

a= ( ( 1 + 5 ) ) a = ((1+5)) a= ((1+5))a=[1+5]

只读变量

readonly b=5

只读变量,不能更改

shift + g 跳到最后

cp hello.sh /bin/
hello.sh
直接使用文件名字执行命令发现执行不了,但是把sh文件放到bin目录底下,在使用名字进行hello.sh进行执行命令发现执行了了
但是bin目录都是系统本身。所以可以把写脚本的文件添加到系统环境变量PATH
有时候想要把参数传给脚本,则在脚本文件中写$1,在执行命令的时候hello.sh xiaoli 此时把xioali传给了$1

mv

复习一下 mv parameter parameter.sh 修改文件名

chmod +x hello.sh

修改文件权限为可执行

$#

获取当前参数的的个数

for循环

for ((初始值;循环控制条件;变量变化))
do 程序
done
在(())里边可以直接跟一个数学的运算式
约定俗称for后边跟(())

for 变量 in 值1,值2,值3
do 程序
done
{1…100}代表1-100的意思
for i in {1…100};do sum= [ [ [sum + $i];done ;echo $sum 类似于java的增强for循环
$* $@ 不被引号引起来的时候使用的时候没有任何区别

#!/bin/bash
	echo '*****************$********************'	
	for para in "$*"
	do
	        echo $para
	done
		
	echo '*****************$********************'
	
	for para in "$@"
	do
	        echo $para
	done
	~       

@ 和 @和 @* 没有被双引号引起来的时候,两个输出没区别,但是引号引起来之后,*的输出内容按照一行输出。
要想在vim中正确显示$可以在两边包上‘’单引号

while循环

while [ 条件判断式 ]
do
程序
done

输入控制

read -t 10 -p “请输入自己的名字”: name
echo $name
运行该脚本,提示自己输入自己的名字,提示10s之后关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值