页面“Shell特殊变量”与“Shell脚本获取当前工作目录”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
(导入1个版本)
 
docker>Evan
 
第1行: 第1行:
 +
==
 +
<pre>
 +
#脚本的当前目录
 +
idir=$(cd $(dirname $0); pwd)
  
shell特殊变量: $0, $#, $*, $@, $?, $$和命令行参数
 
  
{|
+
解说
|+ 特殊变量列表
+
步骤1
|-
 
! 变量
 
! 含义
 
|-
 
| $0
 
| 当前脚本的文件名
 
|-
 
| $n
 
| 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
 
|-
 
| $#
 
| 传递给脚本或函数的参数个数。
 
|-
 
| $*
 
| 传递给脚本或函数的所有参数。
 
|-
 
| $@
 
| 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
 
|-
 
| $?
 
| 上个命令的退出状态,或函数的返回值。
 
|-
 
| $$
 
| 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
 
|}
 
  
&nbsp;
+
dirname $0,取得当前执行的脚本文件的父目录
  
&nbsp;
+
步骤2
  
== $* 和 $@ 的区别 ==
+
cd到父目录,即进入当前工作目录
  
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。<br/> <br/> 但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。
+
步骤3
  
&nbsp;
+
pwd显示当前工作目录
 +
</pre>
  
&nbsp;
+
[[category:shell]]
 
 
http://c.biancheng.net/cpp/view/2739.html
 
 
 
&nbsp;
 
 
 
&nbsp;
 
 
 
&nbsp;
 
 
 
&nbsp;
 
 
 
&nbsp;
 
 
 
&nbsp;
 
 
 
&nbsp;
 
 
 
&nbsp;
 
 
 
[[Category:Shell]]
 

2019年9月26日 (四) 10:54的版本

==

#脚本的当前目录
idir=$(cd $(dirname $0); pwd)


解说 
步骤1

dirname $0,取得当前执行的脚本文件的父目录

步骤2

cd到父目录,即进入当前工作目录

步骤3

pwd显示当前工作目录