shell位置参数,shell位置参数的概念

http://www.itjxue.com  2023-01-22 03:50  来源:未知  点击次数: 

shell中的位置参数变量$类型如何理解

Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言,涵盖的知识点多且杂,却是云计算开发人员必须要掌握的技术之一。接下来就给大家梳理一下Shell变量相关的知识。

Linux Shell中的变量可以被指定为任意的数据类型,比如文本字符串或者数值。你也可以通过修改Shell中的变量来改变Shell的样式。

Shell支持三种定义变量的方式:

variable=value

variable='value'

variable="value"

variable是变量名,value是赋给变量的值。如果value不包含任何空白符(例如空格、Tab缩进等),那么可以不使用引号;如果value包含了空白符,那么就必须使用引号包围起来。注意,赋值号=的周围不能有空格。

Shell变量的命名规范和大部分编程语言一样:变量名由数字、字母、下划线组成;必须以字母或者下划线开头;不能使用Shell里的关键字(通过help命令可以查看保留关键字)。

Linux中Shell变量分为系统变量和用户自定义变量,系统变量包括$HOME、$PWD、$SHELL、$USER、echo $SHELL以及显示当前Shell中所有变量set。

Shell自定义变量包括1)定义变量:变量=值;2)撤销变量:unset变量;3)声明静态变量:readonly变量,注意不能unset;4)使用export把变量提升为全局环境变量,如/etc/profile中的TOMCAT_HOME变量,且在另外的/opt/tmp/shell/myShell.sh脚本中使用该环境变量。

Shell设置环境变量

基本语法:

1)export:变量名=变量值(功能描述:将shell变量输出为环境变量)

2)source:配置文件(功能描述:让修改后的配置文件立即生效)

3)echo:$变量名(功能描述:查询环境变量的值)

单行注释:#

多行注释::!需要注释的内容!

Shell脚本很适合处理纯文本类型的数据,而Linux中几乎所有的配置文件、日志文件(如NFS、Rsync、Httpd、Nginx、MySQL等),以及绝大多数的启动文件都是纯文本类型的文件。Shell是运维人员必须要掌握的技能,此外还需要掌握Linux、信息安全、Docker容器等。

shell 脚本参数 路径怎么设置

linux系统除了提供位置参数还提供内置参数,内置参数如下: 

$# ----传递给程序的总的参数数目  

$? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。

$* ----传递给程序的所有参数组成的字符串。

$n ----表示第几个参数,$1 表示第一个参数,$2 表示第二个参数 ... $0 ----当前程序的名称

$@----以"参数1" "参数2" ... 形式保存所有参数

$$ ----本程序的(进程ID号)PID

$! ----上一个命令的PID

编写一个shell脚本,脚本名为shell,执行该脚本的功能是:判断第一个位置参数是否是

#!/bin/bash

if?[?$#?-lt?1?];then

????echo?"usage?$0?[path?or?file]"

????exit?-1

fi

if?[?"$1"?=?"/root"?];then

????ls?-a?$1?|?tee?13out?

else

????echo?"第一个位置参数不是/root目录!"????

????exit?-2

fi

argc=0

for?i?in?$@

do

????argc=$(($argc+1))

????if?[?$argc?-eq?1?];then

????????continue

????fi

????if?[?-f?$i?];then

????????echo?"$i?的文件内容:"?|?tee?-a?13out

????????cat?$i?|?tee?-a?13out

????elif?[?-d?$i?];then

????????echo?"$i?为目录文件"

????else

????????echo?"$i?既不是普通文件也不是目录文件"

????fi?

done

(责任编辑:IT教学网)

更多