0

我是 bash 脚本的新手,想知道如何执行以下操作。基本上我有以下行

./application [channels] -> [message]

我想将这些存储到 2 个 bash 变量中,并以 '->' 作为分隔符。

IE:

$channels = 频道 $message = 消息

,此外,可以存在由a和/或空格分隔的多个通道。所以整行将是这样的:

./application Channel1, Channel2,Channel3 -> 这是一条消息。

现在在 bash 中,我希望通道存储在一个通道数组中,由分隔的通道数组,(如果它存在则去掉空间)和消息存储在一个消息变量中。目前我唯一能整理的就是这个:

#!/bin/bash
for i
    do
        echo $i
    done

有人可以帮我吗?

4

1 回答 1

0

由于您的消息中可能有空格,请将您的论点放在引号中,并保持简单:

for CHANNEL in $(echo $1 | tr " ," "\n")
do
  echo Channel: ${CHANNEL}
done

echo Message: ${2}

例子:

anew@buddha:~/dev/so$ bash example.sh "channel1 channel2 channel3" "this is the message"
Channel: channel1
Channel: channel2
Channel: channel3
Message: this is the message
于 2013-02-18T05:19:59.103 回答