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)正如您在我的“subj1”中看到的,前两个条目以字母arn开头,这意味着它们是arn的子目录(位于不同的位置,而不是arn主目录中)。所以我还想运行一个命令,如果subj1包含subj,那么它必须执行一个特定的命令。
if [[ ${s1} == *"${s}"* ]];then

这样做对吗?
我非常感谢你的帮助。
提前谢谢你。

最佳答案

我认为你的意思是:

for s in $subj; do
  for s1 in $subj1; do
    # do something
  done
done

通过嵌套for [[s in $subj] && [s1 in $subj1]]循环,您将遍历fors的所有可能组合,这听起来像是您在问题的第1部分中要做的。
但是,我不能理解你在第二部分中所说的,所以我不能帮你。

08-15 20:18