浅谈Linux内部环境变量(2)

$#
命令行第二个表达式或者是单个的变量
$*
所有的单个参数,就想一个单词一样
$@
与 $*一样, 但是每一个参数是一个限定的字符串, 因此字符串是功过交互, 没有多余的作用,意思就是,在其他的字符串里每一个字符串都看成一个分隔的单词。
Example  arglist: Listing arguments with $* and $@


#!/bin/bash
E_BADARGS=65
if [ ! -n "$1" ]
then
  echo "Usage: `basename $0àrgument1 argument2 etc."
  exit $E_BADARGS
fi 
echo
index=1
echo "Listing args with \"\$*\":"
for arg in "$*"  # 不起作用"$*" 不是限制.
do
  echo "Arg #$index = $arg"
  let "index+=1"
done            # $* 看成是所有的表达是的单个单词
echo "Entire arg list seen as single word."
echo
index=1
echo "Listing args with \"\$@\":"
forarg in "$@"
do
  echo "Arg #$index = $arg"
  let "index+=1"
done            # $@ 看所有的额变大事是一个分隔的单词
echo "Arg list seen as separate words."
echo
exit 0

还可以加一个特别有意思的,加一个shift,前面的一个数值就会消失,小伙伴可以试试。
.
#!/bin/bash
# Invoke with ./scriptname 1 2 3 4 5
echo "$@"    # 1 2 3 4 5
shift
echo "$@"    # 2 3 4 5
shift
echo "$@"    # 3 4 5
# Each "shift" loses parameter $1.

其他特殊参数
$-
在脚本里作为一个标记,一个作用就是可以交互自测
$!
PID (process id) 最后一个进程
$_
这个特殊变量的值是设置在提交前的的值
Example 9-9. underscore variable
#!/bin/bash
echo $_              # /bin/bash
du >/dev/null        #没有输出
echo $_              # du
ls -al >/dev/null    # 没有输出
echo $_              # -al  (last argument)
:
echo $_             
reference:Advanced.Bash.Shell.Scripting.Guid,unix.shell范例精讲。

设置Linux环境变量的方法和区别 

Linux 下三种方式设置环境变量 

Ubuntu 14.04安装JDK1.8.0_25与配置环境变量 

Linux安装JDK和配置环境变量 

Linux教程分享:如何为sudo命令定义PATH环境变量 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16669.html