0

bash スクリプトの各行の後に \ を出力したいと思います。

例: $k の出力は次のとおりです。

git-core
nano
apache2

ここで、apt を使用してこのパッケージをインストールします。私が今唯一の解決策は次のとおりです。

sudo apt-get install git-core \
nano \
apache2

このキャラクターを追加するにはどうすればよいですか?

4

1 に答える 1

1

示唆されているように、問題に対して間違った解決策を見ている可能性があります。

$k の改行文字をスペースに置き換えることができます。

k=$(echo "$k" | tr '\n' ' ')

さらに良いことに、apt パッケージ名の名前にスペースが含まれていないことを知っていれば、bash の単語解析を利用できます (また、$k に含まれるすべてが改行で区切られたパッケージ名であることが確実であると仮定します)。

sudo apt-get install $k

$k の引用符がないため、bash は改行を通常の単語区切り文字 (スペース) に再解析します。

何らかの理由で、本当にバックスラッシュを各行の最後に追加したい場合は、いつでも sed を使用できます。

echo "$k" | sed 's/$/\\/'
于 2013-05-14T15:34:20.367 に答える