int*_*ore 5 bash string command output
我需要将命令输出与字符串进行比较。这是场景:
pvs_var=$(pvs | grep "sdb1")
Run Code Online (Sandbox Code Playgroud)
所以 pvs var 是:/dev/sdb1 vg_name lvm2 a-- 100.00g 0
if [[ $($pvs_var | awk '{ print $2 }') = vg_name ]]; then
do something
fi
Run Code Online (Sandbox Code Playgroud)
问题是 if 语句的输出是
-bash: /dev/sdb1: Permission denied
Run Code Online (Sandbox Code Playgroud)
我不明白这种行为。谢谢
Pes*_*hke 12
您试图将 的内容$pvs_var作为命令执行,而不是将字符串传递给 awk。
要解决此问题,请在 if 语句中添加echo或printf:
if [[ $(echo "$pvs_var" | awk '{ print $2 }') = vg_name ]]; then
do something
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1974 次 |
| 最近记录: |