shell 含空格的文件名作为位置参数如何通过类型测试?

sh/bash/dash/ksh/zsh等Shell脚本
回复
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

shell 含空格的文件名作为位置参数如何通过类型测试?

#1

帖子 cao627 » 2012-04-08 21:05

脚本a内容如下
if [ -d $1 ]
then
echo "File $1 is a directory"
fi

./a Whitespace\ Matters
Whitespace Matters为目录名
执行错误
如何解决
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: shell 含空格的文件名作为位置参数如何通过类型测试?

#3

帖子 aerofox » 2012-04-08 21:40

加双引号!
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: shell 含空格的文件名作为位置参数如何通过类型测试?

#4

帖子 cao627 » 2012-04-08 21:43

./a “Whitespace Matters”
都试过的,不行。
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: shell 含空格的文件名作为位置参数如何通过类型测试?

#5

帖子 aerofox » 2012-04-08 21:46

$1 变为 "$1"
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: shell 含空格的文件名作为位置参数如何通过类型测试?

#6

帖子 lilydjwg » 2012-04-08 21:46

if [ -d "$1" ]
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: shell 含空格的文件名作为位置参数如何通过类型测试?

#7

帖子 cao627 » 2012-04-08 21:52

是的
回复