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 ...
随机推荐
- 【Java】servlet和servlet 容器
servlet不是线程安全的,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,所以你的项目中如果只有一个servlet,那么web容器就只会创建一个实例 ...
- cademy的Java习题做后感
在cademy各种语言的hello world也做了不少,好像都差不多,先是数据类型,然后条件语句,之后面向对象,再上几个特殊对象. 以前都没有做笔记,导致ruby做完就忘光了,这次好歹写点什么,比如 ...
- SCP和SFTP(都使用SSH。但SCP上传不能中断,而SFTP可以续传,这是最大区别)
不管SCP还是SFTP,都是SSH的功能之一.都是使用SSH协议来传输文件的. 不用说文件内容,就是登录时的用户信息都是经过SSH加密后才传输的,所以说SCP和SFTP实现了安全的文件传输. SCP和 ...
- Spring 4 and MyBatis Java Config
TL;DR With the Java Config enhancements in Spring 4, you no longer need xml to configure MyBatis for ...
- 通过超链接打开App应用
URL schemes, 通过超链接打开App应用 var mobileAppInstall = (function () { var ua = navigator.userAgent, loadIf ...
- 【转】Android Building System 总结 - 一醉千年 - CSDN博客
原文网址:http://www.360doc.com/content/15/0314/23/1709014_455175716.shtml Android Building System 总结 收藏 ...
- 南京Uber优步司机奖励政策(1月18日~1月24日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 417. Pacific Atlantic Water Flow
正常做的,用了645MS..感觉DFS的时候剪枝有问题.. 为了剪枝可能需要标记一个点的4种情况: 1:滨临大西洋,所有太平洋来的点可以通过: 2:濒临太平洋,所有大西洋来的点可以通过: 3:都不濒临 ...
- 【Android - V】之Toolbar的使用
Toolbar是Android V7包中的一个控件,用来代替Action Bar作为界面的头部标题栏布局.Toolbar相对于Action Bar的特点是更加灵活,可以显示在任何位置. 首先先来看To ...
- javascript正则表达式简述
compile 编译或改变字符串,参数跟new RegExp相同 var patt = /man/g; var str = "man and woman"; str.replace ...