Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux中使用for循环中的and(&;)运算符_Linux_For Loop_And Operator - Fatal编程技术网

在linux中使用for循环中的and(&;)运算符

在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

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] && [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
的测试,并提出了这个建议。