$@和$*区别

不加引号的时候没区别

#! /usr/bin/bash

function print_args_at {
printf "%s\n" $@
echo $@
} function print_args_star {
printf "%s\n" $*
echo $*
} print_args_at "one" "two three" "four"
echo "*******************************************"
print_args_star "one" "two three" "four" 输出结果 one
two
three
four
one two three four
*******************************************
one
two
three
four
one two three four

加引号有区别

#! /usr/bin/bash

function print_args_at {
printf "%s\n" "$@"
echo $@
} function print_args_star {
printf "%s\n" "$*"
echo $*
} print_args_at "one" "two three" "four"
echo "*******************************************"
print_args_star "one" "two three" "four" 输出结果 one
two three
four
one two three four
*******************************************
one two three four
one two three four

#:$#变量是命令行参数或位置参数的数量

-:$-变量是传递给shell脚本的执行标志

?:$? 变量是最近一次执行的命令或shell脚本的出口状态

$:$$ 变量是shell脚本里面的进程ID。Shell脚本经常使用 $$ 变量组织临时文件名,确保文件名的唯一性。

_:$_ 变量是一个特殊的变量,在shell开始运行时,变量的初始值为shell或其执行的shell脚本的绝对路径名,之后就是最近执行的命令的最后一个选项或参数等。

!:&! 变量的值是最近运行的一个后台进程的PID

LINENO:调试用,用于显示脚本中当前执行的命令的行号。

OLDPWD:利用cd命令改换到新目录之前所在的工作目录。用法:cd $OLDPWD  (切换到之前的工作目录,和cd - 功能一样)

OPTARG:getopts命令已经处理的前一个选项参数。

OPTIND

PPID:是当前进程的父进程的PID

PWD:当前工作目录。这是一个变量,变量值等同于命令pwd的输出

RANDOM:随机数变量。每次引用这个变量会得到一个0~32767的随机数。

REPLY: read命令,如果没有被指定变量。即通过read读入的数据,如果没有对应的变量进行赋值,则可以把REPLY变量用作read命令的默认变量,接收read命令读入的参数。

SECONDS:脚本已经运行的时间(以秒为单位)

Bash基础——Shell脚本内部常用环境变量的更多相关文章

  1. 利用SHELL脚本修改当前环境变量

    转自http://www.chinaunix.net/old_jh/7/21485.html 1.背景 ---- 在日常的工作中,为了设置一大批环境变量,我们通常编辑了一个shell程序,包含了多个的 ...

  2. shell脚本中常用命令

    1           Shell中的特殊符号 1.1           $  美元符号.用来表示变量的值.如变量NAME的值为Mike,则使用$NAME就可以得到“Mike”这个值. 1.2    ...

  3. 【转】从Shell脚本内部将所有标准输出及标准错误显示在屏幕并同时写入文件的方法

    如果全部都要重定向的话每一条命令后面>>并不方便,可以这么做.在开头就声明 exec 1>>$log_file表示将脚本中所有的正确输出全部追加到$log_file,错误信息会 ...

  4. Maya 常用环境变量详解

    Maya 常用环境变量详解 前言: Maya 的环境变量让用户可以很方便的自定义 Maya 的功能. 在 Maya 的 Help 帮助文档中有专门的一个章节< Environment Varia ...

  5. 在python脚本中设置环境变量,并运行相关应用

    1. 问题 在自动化应用的时候 ,有时候环境变量与运行需要不一致.这时候有两种选择: 改变节点环境变量,使得其和运行需求保持一致: 在自动化脚本中设置环境变量,其范围只在脚本运行环境中有效. 显然,当 ...

  6. cmake 常用变量和常用环境变量查表手册

    cmake 常用变量和常用环境变量查表手册 一,cmake 变量引用的方式: 前面我们已经提到了,使用${}进行变量的引用.在 IF 等语句中,是直接使用变量名而不通过${}取值 二,cmake 自定 ...

  7. shell脚本中特定符合变量的含义

    shell脚本中特定符合变量的含义: $#   传递到脚本的参数个数 $*    以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过9个 $$    脚本运行的当前进程PID号 ...

  8. Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)

    I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量                env:环境变量 常用系统变量: path pwd lang home his ...

  9. 『忘了再学』Shell基础 — 22、主要的环境变量配置文件说明

    目录 1.source命令 2.Linux系统中环境变量配置文件 (1)登录时生效的环境变量配置文件 (2)/etc/profile环境变量配置文件 (3)/etc/profile.d/*.sh环境变 ...

随机推荐

  1. 实现不同的项目,用不同的git 账号提交

    可以全局配置一个git 账户名和密码,然后在具体项目里单独配置一个账户名和密码 例如: git config --global user.name "winyh" git conf ...

  2. [转]jkeyll的安装步骤

    链接地址:https://nxjniexiao.github.io/2018/08/17/jkeyll-install/

  3. ipad 如何 Airplay 到 Windows 上?

    最近刚好有用到这个,觉得还不错,就推荐给大家.虽然个人并不喜欢苹果这一套,但是工作里难免掺杂一些会用到的ipad , mac . 纯粹技术分享. 1. 5KPlayer : https://www.5 ...

  4. 微信小程序中的事件绑定

    前言: 微信小程序中的事件绑定和Vue中的事件绑定其实有很多的相似之处,所以如果有过Vue相关的经验,学起来的话还是比较容易的. js代码: // 页面级的js文件必须调用Page函数来注册页面, / ...

  5. scau 10692 XYM-入门之道

    题目:http://paste.ubuntu.com/14157516/ 思路:判断一个西瓜,看看能不能直接吃完,如果能,就吃了.但是:如果不能,就要分成两半,就这样分割,不用以为要用到n维数组,用一 ...

  6. 关于Python编码这一篇文章就够了

    概述 在使用Python或者其他的编程语言,都会多多少少遇到编码错误,处理起来非常痛苦.在Stack Overflow和其他的编程问答网站上,UnicodeDecodeError和UnicodeEnc ...

  7. BJFU-208-基于顺序存储结构的图书信息表的最贵图书的查找

    #include<stdio.h> #include<stdlib.h> #define MAX 1000 typedef struct{ double no; char na ...

  8. golang之new函数

    另一个创建变量的方法是调用用内建的new函数.表达式new(T)将创建一个T类型的匿名变量,初始化为T类型的零值,然后返回变量地址,返回的指针类型为 *T . p := new(int) // p, ...

  9. AVR单片机教程——烧写hex文件

    每一次build项目,编译器都会生成多个文件,其中有一个就是hex文件.之前在IDE中配置的external tools,就是把这个hex文件烧写到单片机中去的. 然而,有些时候你想运行别人的程序,但 ...

  10. 如何用Java实现条件编译

    在 C 或 C++ 中,可以通过预处理语句来实现条件编译.代码如下: #define DEBUG #IFDEF DEBUUG /* code block 1 */ #ELSE /* code bloc ...