在linux中使用for和(&&)运算符for循环

时间:2013-07-01 18:44:33

标签: 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] && [s1 in $subj1]]

02)正如你在我的“subj1”中看到的那样,前两个条目以字母ARN开头,这意味着它们是ARN的子目录(位于不同的地方。不在ARN主目录中)。所以我也想运行一个命令,如果subj1包含subj,那么它必须执行某个命令。为此,我写了以下内容,

if [[ ${s1} == *"${s}"* ]];then

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

我非常感谢任何帮助。

提前谢谢。

1 个答案:

答案 0 :(得分:2)

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

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

通过嵌套for循环,您将遍历ss1的每个可能组合,这听起来就像您在问题的第1部分中尝试做的那样。

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