先看一下这个script:
#!/bin/bash
a="-- a b c"
echo $1 $2
# ./loop2.sh par1 par2
par1 par2
当运行些脚本loop2.sh时,会将par1和par2传给loop.sh作为命令行参数,shell会自动的将par1和par2的值分别赋给$1和$2
#!/bin/bash
a="-- aa bb"
set $a
echo $1 $2
# ./loop2.sh par1 par2
aa bb
使用set后,会在脚本中重设位置参数从变量a中去取,注意当以“--”或“-”开头时,则会忽略这两个特殊符号。
#!/bin/bash
a="-- aa bb"
set -- $a
echo $1 $2
# ./loop2.sh par1 par2
-- aa
这时运行此脚本时,会把“--”或“-”开头的字符串也算进去