-1

我写了一个shell脚本。我有一个问题,我想手动确定文件夹名称。实际上,我在@Suhas 的帮助下解决了。当我执行我的脚本时,我有一个错误

./scriptname: line 5: syntax error in conditional expression
./scriptname: line 5: syntax error near `"${folder2}"'
./scriptname: line 5: `    if [[ ! -d "${folder1}" "${folder2}" ]]; then'

有人能弄清楚出了什么问题吗?

4

2 回答 2

1

这个:

if [[ ! -d "${folder1}" "${folder2}" ]]; then

需要分成2个:

if [ ! -d "${folder1}" ] && [ ! -d "${folder2}" ]; then
于 2013-10-14T19:56:35.817 回答
1

仍然使用[[ ]]bash 测试的双重测试的更好且有效的解决方案:

if [[ ! -d "${folder1}" && ! -d "${folder2}" ]]; then

笔记

[[是一个与命令类似(但比[命令更强大)的 bash 关键字。请参阅http://mywiki.wooledge.org/BashFAQ/031http://mywiki.wooledge.org/BashGuide/TestsAndConditionals。除非您正在为 POSIX sh 写作,否则我们(wooledge.org)建议使用[[.

于 2013-10-14T20:01:47.480 回答