如何解决bash脚本中的间距有问题
我正在尝试使用find命令作为条件执行if / else。由于目录中的间距,导致出现错误。我在这里和Google上进行了大量搜索,无法解决此问题。谢谢您的提前帮助。
我的代码:
<div class="container">
<p class="h3_default">Some header</p>
<div class="row">
<div class="col p-2">
<p class="p_default">
<img class="m-2" src="img/apple.jpg" alt="spanish apple" align="left">
</p>
<p class="p_default">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Blanditiis similique numquam provident
placeat esse! Aliquam numquam amet alias molestiae voluptatum quis veritatis voluptate,adipisci
repellat aspernatur magni ad aperiam perferendis dolorem. Eum tempore aperiam doloremque
doloribus voluptatum rem molestiae adipisci sit,optio beatae sapiente,accusantium quaerat
aspernatur fugiat cumque praesentium asperiores voluptates accusamus labore,sunt magnam ullam.
Doloremque deserunt ipsam ipsum mollitia beatae odit totam,eius magni quas tempora quis
molestiae maiores,explicabo aliquid possimus! Nobis consequatur alias,cum hic dicta rerum eos
praesentium impedit nesciunt quas,cumque animi distinctio officia minima? Debitis minima
nesciunt dicta possimus officia esse quidem,perferendis distinctio. Numquam,quidem. Iste
accusantium,autem itaque error ducimus aut dignissimos eaque voluptatem vitae,dolor expedita
eveniet placeat nobis?
</p>
</div>
</div>
</div>
结果:
#!/usr/bin/bash
dir="/to/Two Words/test/"
file="test.txt"
if [ `find $dir -name $file` ];
then
echo "File $file is in $dir"
else
echo "$file is not in $dir"
fi
解决方法
您必须双引号$dir
来避免word
splitting,但无论如何
不起作用:
$ ./f.sh
./f.sh: line 5: [: space: binary operator expected
您要
#!/usr/bin/bash
dir="/to/Two Words/test/"
file="test.txt"
if [[ -n "$(find "$dir" -name "$file")" ]]
then
echo "File $file is in $dir"
else
echo "$file is not in $dir"
fi
,
if
不需要[
来执行命令,但是find
即使未找到文件也返回0。尝试将管道与grep
一起使用。
if find "$dir" -name "$file" | grep .
如果匹配失败,则grep将返回false。
,由于空白,$dir
扩展为两个参数;添加引号以防止出现这种情况,find "$dir"
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。