linux - 在 shell 脚本中使用 && 运算符
问题描述
我正在尝试编写一个 shell 脚本并将输出存储在 .csv 文件中。我必须在我的 for 循环中使用两个条件,但是当我尝试使用 && 运算符来检查这两个条件时,它会引发语法错误。个别条件按预期工作正常,但使用 && 不起作用。我只需将数据写入 CSV 文件一次。有人可以建议。其他选项可能是为两个条件创建两个 CSV 并以某种方式合并它们,但这会增加代码行数。我敢肯定,这可能是处理这个问题的一种优雅方式,只是无法到达那里。
./test1.sh ./test1.sh:第 5 行:&&' ./test1.sh: line 5:
[line in du -sh /stats/*/*
&& line1 in du -sh /stats/accounts/*
];do' 的意外标记附近出现语法错误
我的示例代码如下
#!/bin/sh
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
echo "A1,A2,A3,A4,A5" > demo.csv
for [line in `du -sh /stats/*/*` && line1 in `du -sh /stats/accounts/*`];do
a1=$(echo $line |awk '{print $2}'|sed -e 's/^\(\/.*\/\)*.*/\1/'|sort -hr| head -10)
a2=$(echo $line1 |awk '{print $2,$1}'|sed -e 's/\/stats\/.*\// /g' -e 's/-.*/ /g'|sort -hr| head -10)
a3=$(echo $line1 |awk '{print $2}' | sed 's/\/stats\/.*\// /g'|sort -hr| head -10)
a4=$(echo $line |awk '{print $1}'|sort -hr|head -10)
echo ''$(hostname)','$a1','$a2','$a3','$a4'' >> demo.csv
done
IFS=$SAVEIFS
code=$?
exit $code
解决方案
推荐阅读
- azure - 如何在 azure-cosmosdb (Document DB) 中保持文档创建幂等性?
- python-3.x - 使用 CPLEX 约束规划的矩形调度程序
- javascript - 如何获取悬停时出现的元素的宽度
- bash - 在双引号内转义单引号内的单引号
- ios - 导航时关闭视图控制器
- kotlin - 在 Kotlin 代码中使用 NotBlank 注释不起作用
- r - 使用 facet_wrap 在 ggplot 中绘制全范围的分位数回归
- r - is there a method to get frequency distribution different columns in R
- sql - 如果同月数据阶段或sql的费率不同,如何解决?
- python - Python 3 doctest:doctest 和真实评估之间的不同行为