Shell - 特殊变量
$0
表示所执行程序的路径名。
[huey@huey-K42JE ~]$ ll ~/bin
total 4
-rwxrwxr-x 1 huey huey 21 Oct 24 14:39 hello
[huey@huey-K42JE ~]$ cat ~/bin/hello
#!/bin/bash echo '$0:' $0
[huey@huey-K42JE ~]$ hello
/home/huey/bin/hello
[huey@huey-K42JE ~]$
$n
表示传递给脚本或函数的第 n 个参数,如 $1 表示第一个参数。
[huey@huey-K42JE ~]$ ll ~/bin
total 4
-rwxrwxr-x 1 huey huey 63 Oct 24 14:52 hello
[huey@huey-K42JE ~]$ cat ~/bin/hello
#!/bin/bash echo '$1:' $1
echo '$10:' $10
echo '${10}:' ${10}
[huey@huey-K42JE ~]$ hello a b c d e f g h i j
$1: a
$10: a0
${10}: j
注意:第 10 个参数,用 ${10} 表示,而不是 $10。
$#
表示传递给脚本或函数的参数个数。
[huey@huey-K42JE ~]$ ll ~/bin
total 4
-rwxrwxr-x 1 huey huey 27 Oct 24 15:00 hello
[huey@huey-K42JE ~]$ cat ~/bin/hello
#!/bin/bash echo '$#:' $#
[huey@huey-K42JE ~]$ hello
$#: 0
[huey@huey-K42JE ~]$ hello a b c
$#: 3
$*
表示传递给脚本或函数的所有参数。当包括在双引号内时,扩展为双引号引用的有全部位置参数构成的字符串,每个位置参数以 IFS 变量的第一个字符(默认情况下为空格)间隔开。
$@
表示传递给脚本或函数的所有参数。当包括在双引号内时,将每个位置参数扩展为双引号引用的单独单词。
[huey@huey-K42JE ~]$ ll ~/bin
total 4
-rwxrwxr-x 1 huey huey 284 Oct 24 15:21 hello
[huey@huey-K42JE ~]$ cat ~/bin/hello
#!/bin/bash echo 'Print each param from $*:'
for var in $*
do
echo $var
done echo 'Print each param from $@:'
for var in $@
do
echo $var
done echo 'Print each param from "$*":'
for var in "$*"
do
echo $var
done echo 'Print each param from "$@":'
for var in "$@"
do
echo $var
done
[huey@huey-K42JE ~]$ hello a b c
Print each param from $*:
a
b
c
Print each param from $@:
a
b
c
Print each param from "$*":
a b c
Print each param from "$@":
a
b
c
$?
表示上个命令退出的状态或函数的返回值。
$$
表示当前 Shell 的进程 ID。
[huey@huey-K42JE cmdline]$ ps
PID TTY TIME CMD
17379 pts/3 00:00:00 bash
18370 pts/3 00:00:00 ps
[huey@huey-K42JE cmdline]$ echo $$
Shell - 特殊变量的更多相关文章
- shell与变量的声明的操作
1.给命令起别名:alias 执行下面命令后,可以使用dir代替ls –l 命令,显示目录中的文件详细信息: 还可以用一个别名表示几个命令 的结合: 2.ps:显示当前登录会话的所有活动进程: 3.更 ...
- shell之变量与read
环境变量 set 环境变量可供shell以外的程序使用 shell变量 env shell变量仅供shell内部使用 set:显示(设置)shell变量 包括的私有变量以及用户变量,不同类的shell ...
- 【Linux】之shell特殊变量整理
目录 1. 特殊变量列表 2. 特殊说明 在shell中变量名只能包含数字.字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量. 例如,$ 表示当前Shell进程的ID,即p ...
- (转载)shell变量基础—shell自定义变量
(转载)http://see.xidian.edu.cn/cpp/html/1494.html 一.Shell定义变量需要遵循的规则 Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下 ...
- shell基础——变量定义
快速参考: 变量定义格式: 变量名=值 str1="hello world" # define a string var str2=hello # define a string ...
- shell的变量处理
shell的变量处理 一.删除 删除(删除某一段) # 从前向后删除 % 从后向前删除 删除(删除某一部分) $(var:nu1:nu2) nu1表示开始位置 nu2表示删除长度 示例如下 file= ...
- shell 环境变量的相关配置文件和配置方法
shell 环境变量的相关配置文件和配置方法: bash 的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh, /etc/bashrc 个人配置 ~/.bas ...
- Linux编程 12 (默认shell环境变量, PATH变量重要讲解)
一 .概述 默认情况下, bash shell会用一些特定的环境变量来定义系统的环境.这些默认环境变量可以理解是上篇所讲的系统全局环境变量. 1.1 bash shell支持的Bourne变量 Bo ...
- shell模板变量替换
我们经常使用一些模板语言来处理一些变量替换.比如jsp,php,velocity,freemarker,thymeleaf等.那对于shell来说,应该怎样替换变量呢.有一种很简单的办法可以做到. 先 ...
- centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课
centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/ind ...
随机推荐
- uva 10496 Collecting Beepers
一个简单的货郎担问题,用状态压缩dp可以解决: 解法: d(i,S)=min{d(j,S-{j})+dis(i,j) | j belongs to S}; 边界条件:d(i,{})=dis(0,i). ...
- 使用2to3将代码移植到Python 3-转
http://m.blog.csdn.net/blog/merryken/9104199# ❝ Life is pleasant. Death is peaceful. It’s the transi ...
- C语言结构体的对齐原则
Q:关于结构体的对齐,到底遵循什么原则?A:首先先不讨论结构体按多少字节对齐,先看看只以1字节对齐的情况: #include <stdio.h> #include <string.h ...
- Android学习之 UI效果
探究Android的多分辨率支持以及各种类型图标尺寸大小 - CSDN 各种数字提醒控件-Android 代码仓库-eoe Android ViewBadger - 开源中国社区 Android 微信 ...
- CSS3 :nth-of-type() 选择器
可以设定第几个元素的样式 案例 css .qrcode img { margin-top: 30px; } .qrcode p:nth-of-type(1) { /*第一个p*/ font-size: ...
- android逐行读取文件内容以及保存为文件
用于长时间使用的apk,并且有规律性的数据 1,逐行读取文件内容 //首先定义一个数据类型,用于保存读取文件的内容 class WeightRecord { String timestamp; flo ...
- Y86处理器的各个阶段
0x00e:30f480000000 | irmovl $128,%esp 实现所有Y86指令所需要的计算分为6个基本阶段:取值.译码.执行.访存.写回和更新 ...
- CSU 1511 残缺的棋盘 第十届湖南省赛题
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1511 题目大意:在一个8*8的棋盘中,给你一个起点位置和一个终点位置,同时也给你一个陷阱 ...
- galera mysql 多主复制启动顺序及命令
Mysql 被复制机 sql启动
- QUEUE——队列(procedure)
#include <stdio.h> #include <stdlib.h> #include "queue.h" int main() { int i; ...