我想这样写:
if [[ ${path} = /home/* ]]
但它不起作用。那我怎么能正确地做到这一点?
答案 0 :(得分:1)
假设你正在使用bash
,你可以写
if [ ${path#/home/} != ${path} ]; then
echo "Yes, it's a home dir"
fi
逻辑:${path#/home/}
会从/home/
的开头剪切path
(如果它在那里),或者如果path
将按原样返回/home/
}不以{{1}}开头。
答案 1 :(得分:0)
这是一个例子。
● path='/home/xxx/Ubuntu One/www'; if [ -d "`dirname "$path"`" ]; then echo YES; fi
YES
并且您最好使用$ HOME或$ {HOME}来获取主目录路径。
答案 2 :(得分:0)
您已标记此问题regex
,但您没有使用正则表达式,而是使用 globbing 。这很好,你的例子对我有用:
path='/home/user1/bin'
if [[ ${path} = /home/* ]]
then
echo "$path matched"
else
echo "$path did not match"
fi
(虽然我更喜欢使用==而不是plain =)。你能告诉你代码(带有示例路径),以便我们检查吗?你确定你在使用bash吗?
如果您想使用正则表达式,请使用匹配运算符=~
,例如:
if [[ ${path} =~ ^/home/ ]]
^
表示“从头开始”,不需要*
。