bash - Bash 多重与或逻辑运算
问题描述
试图基本上做一些相当于
(a && b) || (c && d)
bash 的事情。
目前我有这个,但它不起作用,这只是我玩弄语法的结果..
if [[ -f $TRASH/.$arg && -f $arg ] || [ -d $TRASH/.$arg && -d $arg ]]
最初我只是检查是否存在两个文件,但我需要展开以查看文件或目录是否存在。
解决方案
bc 是一个任意精度的数学和逻辑计算器。对于 cygwin bash,必须显式安装 bc。
#!/bin/bash
a=$1
b=$2
c=$3
d=$4
echo $a $b $c $d
res=$(bc <<< "($a && $b) || ($c && $d)")
echo $res
推荐阅读
- javascript - 在浏览器中重新打开最近的选项卡时如何清除会话
- c++ - 包含犰狳库时的视觉c ++ min max警告
- python - Edit specific line at specific position in Text file in Python
- java - Running a process inside a folder on Linux in Java
- c++ - Initialization with empty curly braces
- java - OpenLiberty 18.0.0.2 是否带有像 Derby DB 或 H2 这样的嵌入式数据库?
- java - org.springframework.beans.factory.BeanCreationException:创建名为“userResource”的bean时出错
- c# - 使用 Revit API 提取建筑面积
- c - 通过引入数字直到按下 0 来计算算术和几何平均值
- mariadb - 错误:mysql_intstall_db 时权限被拒绝