在linux中使用for循环中的and(&;)运算符
01)我试图在for循环中使用&&运算符,如脚本中所示。然而,这似乎不起作用。我无法看到终端窗口中生成的错误,因为一旦出现错误,它就会立即关闭。有人能告诉我我做错了什么吗在linux中使用for循环中的and(&;)运算符,linux,for-loop,and-operator,Linux,For Loop,And Operator,01)我试图在for循环中使用&&运算符,如脚本中所示。然而,这似乎不起作用。我无法看到终端窗口中生成的错误,因为一旦出现错误,它就会立即关闭。有人能告诉我我做错了什么吗 #!/bin/bash cd ~/Documents/DTI/ #subj and subj1 contain folders which are located in the DTI directory subj="ARN MT" subj1="ARNpre1 ARNpre2" for [[s in $subj] &a
#!/bin/bash
cd ~/Documents/DTI/
#subj and subj1 contain folders which are located in the DTI directory
subj="ARN MT"
subj1="ARNpre1 ARNpre2"
for [[s in $subj] && [s1 in $subj1]]
02)正如您在我的“SubC1”中所看到的,前两个条目以字母ARN开头,这意味着它们是ARN的子目录(位于不同的位置,不在ARN主目录中)。因此,我还想运行一个命令,其中,如果subc1包含subc,那么它必须执行某个命令
if [[ ${s1} == *"${s}"* ]];then
这样做是否正确
我将非常感谢任何帮助
提前谢谢。我认为,
对于[[s in$subc]&&[s1 in$subc1]]
您的意思是:
for s in $subj; do
for s1 in $subj1; do
# do something
done
done
通过嵌套for
循环,您将循环通过s
和s1
的所有可能组合,这听起来就像您在问题的第1部分中尝试做的
但是,我无法理解您在第2部分中所说的内容,因此我无法帮助您。您能否给出实际目录结构的示例,以及您希望在脚本中如何匹配它?是的。我的ARN主目录包含使用MRI数据创建的粗体激活掩码,我的ARNpre文件夹包含ARN的DTI数据。但我的DTI数据在一个单独的文件夹中,其中包含“主题数据”,我的掩码在一个单独的“掩码”文件夹中。相同的掩码(在ARN中)用于两个数据文件夹(ARNpre1和ARNpre2)。我希望这个解释是清楚的。不,这没有真正的帮助。我不熟悉你使用的工具。我的意思是,你应该给出一个简单的目录结构(如
ls
的输出,但以几个文件为例。然后给出一个你希望匹配的条目对的示例。然而,你在这里确实有2个问题,而不是1个。你可以删除这个问题的后半部分,然后重新发布(与示例一起)作为一个新问题。这可能会帮助它获得更多的关注。非常感谢您的帮助,我能够让代码正常工作!不客气!我很高兴您能找到答案。如果我的答案有帮助,您也可以单击旁边的绿色复选标记“接受”。感谢您的及时回复。我尝试使用,[[s in$subject]-a[s1 in$subf1]]还有,对于[s in$subc]-a[s1 in$subc1但没有运气。你知道为什么吗???@manuweth--a
可以在条件下工作,但你不能在for循环中使用这样的测试。请重新阅读我的答案。当我意识到你使用的是for
而不是if
时,我删除了建议使用-a
的测试,并提出了这个建议。