我写了这个脚本:
#!/bin/bash
if [ $# -eq 0 ]
then
read fichier1
read fichier2
read fichier3
if [ -rf "fichier1" && -wf "fichier3" ] || [ -rf "fichier2" && -wf "fichier3" ]
then
echo "Vrai"
else
echo "FAUX"
fi
else
if [ -rf "$1" && -wf "$3" ] || [ -rf "$2" && -wf "$3" ]
then
echo "Vrai"
else
echo "FAUX"
fi
fi
我跑不了了有错误“丢失的 ']'”产生的。
答案1
您的代码中至少存在三个缺陷:
[ ... && ... ]
应写为[ ... ] && [ ... ]
.-rf
甚至-wf
都不是有效的运算符。你想达到什么目的?- 在第 7 行中,您可能需要编写
"$fichierN"
而不是"fichierN"
.
答案2
正如评论中提到的 use Ralph Ronquist 那样,您的问题是您&&
在测试表达式中使用[
。在表单中编辑代码if [ -f "fichier1" ] && [ -r "fichier1" ] && [ -w "fichier3" ] ...
,它应该会让您更接近您想要的内容。请注意,我将测试分开 - 当像这样组合时它们会失败-rf
;您需要将它们分成单独的测试。