先有以下bourne shell脚本escape,实际上就是循环读取命令行参数:
#!/bin/sh
echo $#
while [ 1 -le 2 ]
do
if [ -z "$1" ];then
break;
fi
echo "$1"
shift
done
我现在有如下文件结构在本文件夹下,aa.r,aa.k,aa.d
执行./escape aa.*
总是输出如上三个文件名,如何能在脚本里面得到aa.*呢?,就是不要让shell自动通配aa.*。
除了.escape 'aa.*',这个不行
哪位大侠指教一下,谢谢
我现在的需要是不能用./escape 'aa.*',也许上面的描述有点不清楚,就是说我在命令行只输入./escape aa.*,程序里面要能得到aa.*
unix shell命令行通配符拓展问题,如何避免命令行的通配符拓展,求助大侠
答案:2 悬赏:50 手机版
解决时间 2021-03-12 10:37
- 提问者网友:聂風
- 2021-03-11 14:26
最佳答案
- 五星知识达人网友:往事埋风中
- 2021-03-11 15:27
在脚本里的第2行,加上
set -o noglob
然后用 ./escape 'aa.*' 的方法来执行,即可。
set -o noglob
然后用 ./escape 'aa.*' 的方法来执行,即可。
全部回答
- 1楼网友:英雄的欲望
- 2021-03-11 16:09
你好!
看来你非常的集思广益啊,CU Shell版也发了,百度知道也发了,呵呵……
希望对你有所帮助,望采纳。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯