请教一个 shell 脚本小问题
#b.shecho $1
echo $2
echo $3
sh b.sh 1 2 *
#结果:
1
2
anaconda-ks.cfg
原本设想 $3 会是 *, 不料却输出 anaconda-ks.cfg, 百思不得其解, 请问问题是哪里? PS: b.sh 所在路径的确有 anaconda-ks.cfg, 把 anaconda-ks.cfg 删了再运行脚本 $3 等于出另一个文件名. sh b.sh 1 2 '*' shell将*理解为通匹符,*应该相当于按字母顺序第一个匹配的文件名,2楼那样可以防止这种情况 zxcv8 发表于 2016-7-8 20:37
sh b.sh 1 2 '*'
用 sh b.sh 1 2 '*'测试了一下, 发觉 $3 输出的是当前路径的所有文件和文件夹, 还是不能显示 *. zxcv8 发表于 2016-7-8 20:37
sh b.sh 1 2 '*'
用 sh b.sh 1 2 '*'测试了一下, 发觉 $3 输出的是当前路径的所有文件和文件夹, 还是不能显示 *. zxcv8 发表于 2016-7-8 20:37
sh b.sh 1 2 '*'
用 sh b.sh 1 2 '*'测试了一下, 发觉 $3 输出的是当前路径的所有文件和文件夹, 还是不能显示 *. b.sh的內容改成這樣:
#!/bin/sh
echo "$1"
echo "$2"
echo "$3"
然後再使用
sh b.sh 1 2 '*'
就可以輸出:1 2 *
页:
[1]