コマンドで使用したい文字列 (a_001 a_002 a_003 など) のリストがあり、実行するたびに 1 つの文字列を引いたものを使用します。つまり、最初に a_002 と a_003 が含まれ、次に a_001 と a_003、次に a_001 と a_002 が含まれるループを実行したいと考えています。これはbashで設定できますか?
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
文字列のセットが与えられた場合、 for each inS
を使用します。S - {x}
x
S
1 つの方法を次に示します。
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 に答える