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 企业级应用的可扩展性
摘要:本文主要介绍如何理解 Java 应用的扩展方式以及不同类型的扩展技术和具体技巧,介绍一些有关 Java 企业级应用的一般扩展策略. 老实说,"可扩展性"是个全面且详尽的话题, ...
- 使用HttpServletRequestWrapper在filter修改request参数
javax.servlet.ServletRequest中的 Map<String, String[]> parameterMap = request.getParameterMap(); ...
- cloudera安装hadoop集群和相关服务
一.软件准备: 1.下载cloudera-manager-installer.bin(安装...-server),cdh4.cm(这是...-agent),另外还有些需要的关联软件下步添加. 2.先建 ...
- MSBuild 教程(2)
如果你没有看过第一部分教程,请先看完后再回到这里来继续我们的第二部分. 我们下一步的工作是发布我们的网站,也就是创建Publish target. 为了能使我们的target工作,我们需要给它传递两个 ...
- Linux系统Wpa_supplicant用法小结
Wpa_supplicant是linux系统下一个非常强大的无线网卡管理程序.google搜索到的它似乎不支持WPA2和AES,其实不然,参考它的文档可以发现,WPA2只是RSN的别名,而AES也是C ...
- Matlab中常用操作
(1)换行操作: 末尾加上“...”,然后加enter:有时候多条语句重起一行,这时shift+enter >> 4*sin(0.3)*...8 (2)一些快捷键: Ctrl+R 可多行同 ...
- 【转】265行JavaScript代码的第一人称3D H5游戏Demo
译文:http://blog.jobbole.com/70956/ 原文:http://www.playfuljs.com/a-first-person-engine-in-265-lines/ 这是 ...
- sshd_config 配置文件
Ssh-server 服务端 sshd_concfig Port Protocol HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_hos ...
- OpenFlow能解决私有云网络VLAN问题么
本文转载自:http://network.51cto.com/art/201202/314310.htm 在关于私有云网络的文章中,我们首先探讨了物理网络是否影响私有云.本文我们将讨论如何通过软件定义 ...
- 第二十三章、软件安装: RPM, SRPM 与 YUM 功能
SRPM 的使用 : rpmbuild 包含Source code 的 SRPM 新版的 rpm 已经将 RPM 与 SRPM 的命令分开了,SRPM 使用的是 rpmbuild 这个命令,而不是 r ...