我有一个字符串列表(a_001 a_002 a_003 等),我想在命令中使用它,每次运行时减去一个字符串。也就是说,我想运行一个循环,其中第一次包含 a_002 和 a_003,然后是 a_001 和 a_003,然后是 a_001 和 a_002。这可以在bash中设置吗?
问问题
421 次
2 回答
1
试试这个 :
#!/bin/bash
x=( a_001 a_002 a_003 )
set -- "${x[@]}"
while [[ $@ ]]; do
echo "command $@"
shift
done
是你所期望的吗?
输出
command a_001 a_002 a_003
command a_002 a_003
command a_003
于 2013-03-27T20:57:26.400 回答
0
给定一组字符串S
,你想S - {x}
为每个x
in使用S
。
这是一种方法:
S=( a_001 a_002 a_003 )
set -- "${S[@]}"
for x; do
shift # Removes x from the positional arguments
echo "Use $@ without $x" # Some action involving `S - {x}`
set -- "$@" "$x" # Put x back on the end, put
done
于 2013-03-27T21:10:18.030 回答