shell脚本的一些基本操作

shell简介
shell脚本不过是一些文件,我们将一系列需要执行的命令写入其中,然后通过shell来执行这些命令。
shell脚本的执行方式
1. sh script.sh # 脚本在当前目录下
2. ./script.sh #在当前目录下直接执行,不过需要赋予用户script的可执行权限
当打开一个终端的时候,终端会执行一组命令来定义提示文本,颜色等设置。这组命令来自位于用户home目录中的.bashrc脚本文件(~/.bashrc)
bash 还维护了一个历史记录文件~/.bash_history,用于保存用户运行过的命令。
在bash中,每个命令或是命令序列都是使用分号或换行符来分隔的。

1、关于打印和输出的shell脚本
1.1 echo是终端打印的基本命令
echo默认每次调用都会添加一个换行符
echo输出命令,在echo命令后加双引号,单引号,不加引号都能输出但是这三种情况各有不同
1.不带引号的echo ,没法在所需要显示的文本中使用,因为在bash shell中被用做命令界定符。
(相当于直接输出一个变量) 当你输入 echo hello;hello 时,因为;是命令界定符,无法输出后面的一个hello

2.使用单引号echo ,bash不会对变量求值,只是按照原样显示

3.使用双引号echo ,一些特殊字符想要输出需要加转义字符

4.使用三引号echo , 所见即所得,输如什么输出就是什么。

5.在变量输出时还有反引号,存储命令输出,echo输出的是反引号中命令执行的结果

1.2 printf是另一个可以在终端打印的命令
printf不像echo命令自动添加换行符
printf的使用方法和C语言中使用方法是一样的
同时需要注意printf中格式化的输出

2、 变量和环境变量
2.1 变量的赋值操作
注意:var = value 和 var=value,前者是相等操作,后者是赋值操作。
如果value不包含任何空白字符,那么这个变量的值就不需要使用引号进行引用,反之必须使用单引号或双引号

2.2 环境变量
环境变量是没有在当前进程中定义,而是从父进程中继承来的变量。
export 命令用来设置环境变量。(临时作用,就是关机之后环境变量就会消失,或者说是切换用户或者shell这个变量就会消失)
export var="value"
PATH就是一个环境变量,我们可以用echo $PATH 查看变量的值
$PATH 通常定义在/etc/environment或/etc/profile或~/.bashrc中
常见环境变量: HOME PWD USER UID SHELL 等
注:环境变量以[:]为分隔路径
2.3 环境变量的配置方法
1.修改/etc/profile 文件(系统级)
用vim打开文件,在文件末尾加上你想要加入的环境变量,然后重新登录
(这种方法是修改成为永久性环境变量,全局性的,对所有用户都有效)
(1)/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于登录到系统的每一个用户。该文件一般
是调用/etc/bash.bashrc文件。
/etc/bash.bashrc:系统级的bashrc文件。
(2)/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。


2.修改~/.bashrc (用户家目录下)
同样打开当前用户家目录下的文件.bashrc,在文件末尾加入你需要加入的环境变量,然后重新登录
(这种修改方法是修改成为永久性的环境变量,但是只是针对当前shell和用户,就是说其他shell此环境变量失效)
3.修改~/.profile (用户家目录下)
同样使用vim打开当前用户家目录下的文件.profile,在文件末尾加入需要加入的环境变量,重新登录
下面这几个文件同样也可以修改环境变量
~/.bash_profile or ~./bash_login:这里没有引用作者的,下面会提到
~/.pam_environment:用户级的环境变量设置文件,没有做测试,不知道管不管用。

4.直接在shell下设置
使用export设置环境变量
(临时性的设置环境变量)
换个shell这个设置就会失效

2.4 查看进程的环境变量
首先获取应用程序的PID
pgrep 进程/应用名
查看进程的环境变量
cat /proc/$PID/environ
2.5 关于变量的其他使用方法
1. 获得字符串长度
2. 识别当前shell
[root@air ~]# echo $SHELL
/bin/bash
3.修改bash提示符字符串
直接使用修改 PS1 环境变量
[root@air ~]# echo $PS1
[\u@\h \W]\$
4. 使用函数添加环境变量
环境变量通常用于存储路径列表,这些路径用于搜索可执行文件、库文件等。例如$PATH 、$LD_LIBRARY_PATH
假设我们要将myapp安装到/opt/myapp,它的二进制文
件在bin目录中,库文件在lib目录中。
实现方法如下:
export PATH=/opt/myapp/bin:$PATH
export LD_LIBRARY_PATH=/opt/myapp/lib;$LD_LIBRARY_PATH
PATH 和 LD_LIBRARY_PATH 现在看起来应该像这样:
PATH=/opt/myapp/bin:/usr/bin:/bin
LD_LIBRARY_PATH=/opt/myapp/lib:/usr/lib;/lib
不过我们可以把下面的函数加入 .bashrc- ,让一切变得更轻松些:
prepend() { [ -d "$2" ] && eval $1=\"$2':'\$$1\" && export $1; }
像下面这样来使用该函数:
prepend PATH /opt/myapp/bin
prepend LD_LIBRARY_PATH /opt/myapp/lib
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值