我并没有真正陷入困境,偶然发现了这个问题
我有一个包含文件夹位置的数组和一个数组,其值为I' m试图获取这些值,文件夹来去匆匆,所以有时,当我运行检查以获取其关联值时,文件夹已经没有了。
我想隐藏当文件夹不存在时cat返回的错误,并且能够为变量赋予另一个值。
在尝试挖掘之后,我想出了这个,它没有用,但我似乎没有尝试过:
userName[i]={ "$(cat "/mainFolder/${userCodes[i]}/name")" } || { "$errorValue"; }
Cat失败时会抛出No file或directory错误,并且" $ errorValue"抛出":-1:未找到命令"
答案 0 :(得分:0)
这似乎就是你要找的东西:
userName[i]=$(cat "/mainFolder/${userCodes[i]}/name" 2>/dev/null || echo "$errorValue")
2>/dev/null
隐藏了cat
的错误消息,而echo
提供了默认值。
<强>更新强>
“$ errorValue”throws“: - :找不到命令”
这是因为bash会插入变量的值并使用其值,就像命令的名称一样。您可以尝试以下方法来查看我在说什么:
some_var='echo'
"${some_var}" 'Hello!'
这会将Hello!
打印到控制台。