我正在寻找的是:
if [ -f "filenam*" ]; then
...
fi
但是通配符(*)会导致问题。
我也试过了:
if [ `ls filenam* > /dev/null 2>&1` ]; then
...
fi
哪些可能在其他shell中有效但在Bourne shell(sh)中似乎不起作用。
感谢您的帮助!
编辑:抱歉,不是C shell,Bourne shell(sh)。
答案 0 :(得分:2)
而不是使用test -n $(ls filenam*)
,您可能更喜欢:
if ls filenam* 2> /dev/null | grep . > /dev/null; then
...
fi
答案 1 :(得分:0)
由于这是基于C的,您可能需要glob命令:
ls `glob filenam*`
答案 2 :(得分:0)
你走在正确的轨道上。试试这个:
if [ ! -z `ls filenam*` ] ; then
...
fi
这将检查ls是否返回任何内容。
答案 3 :(得分:0)
因为这是csh,所以:
foreach i (`ls -d filenam*`)
...
end
答案 4 :(得分:0)
我喜欢这个:
function first() { echo "$1" ; }
[ -e $(first filenam*) ] && echo "yes" || echo "no"