bash 脚本编程四 外部参数 IFS
bash 脚本编程四 外部参数 IFS
通过$0可以获取传递来的第一个参数,就是脚本自己,$1可以获得第二个参数,比如:
- #!/bin/bash
- echo "$0"
- echo "$1"
- ./test/sh q
看到:
- $ ./test.sh q
- ./test.sh
- q
传递参数的时候,如果是字符串,可以用单引号或者双引号包起来,表示这是一个完整的参数:
- ./test.sh 'this is a test'
既然扯到双引号,要注意,如果在双引号里使用了变量,也会用其值替换,比如:
- ./test.sh "$HOME"
- ./test.sh
- /home/chenshu
同样,这里用上单引号就不会取值。
$* 值得是从第1个参数开始的所有参数,如果没有指定间隔字符,默认用空格。
比如下面的脚本:
- #!/bin/bash
- echo "$*"
- ./test.sh 'this is a test' 'abc'
- this is a test abc
- !/bin/bash
- IFS=^
- echo "$*"
- this is a test^abc
如果IFS设置为换行符,需要这样写:
- IFS=$'\n'
使用$@基本上和$*一样,除了IFS设置无效外。
有时候,想知道外部参数的数量,可以用$#- #!/bin/bash
- IFS=^
- echo "$*"
- echo "$#"
- ./test.sh 'this is a test' 'abc'
评论暂时关闭