1

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

这是进行此类操作的正确方法吗?

我将不胜感激任何帮助。

先感谢您。

4

1 回答 1

2

我认为for [[s in $subj] && [s1 in $subj1]]你的意思是:

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

通过嵌套for循环,您将遍历 and 的所有可能组合ss1这听起来像是您在问题的第 1 部分中尝试做的事情。

但是,我无法理解您在第 2 部分中所说的内容,所以我无法帮助您。

于 2013-07-01T18:48:08.623 回答