ソースファイルをパラメータとして使用しますか?

ソースファイルをパラメータとして使用しますか?

ソースを使用して別のファイル内で別のファイルを実行する方法について読みました。

source ./filename

しかし、コマンドのパラメータでこれを実行したいのですが。

コマンドは次のように実行されます。

command \
-argument \
-argument \
source ./file
-argument \
...

このファイルには、デフォルトで次の追加パラメータセットが含まれています。

-argument \
-argument \

どうすればいいですか?そのまま実行すると、コマンドが失敗します。

答え1

デフォルトでは、コンテンツはfilenameパラメータとして必要です。パラメータにスペースやワイルドカード演算子がない場合は、これを簡単に実行できます。

command \
-argument \
-argument \
$(cat ./file) \
-argument \
...

パラメータに改行やその他の文字が含まれていない場合は、その文字を区切り文字として使用してパラメータリストを設定できます。

#! /bin/bash
args=()
while IFS= read -r arg
do
    args+=("$arg")
done < filename
command \
-argument \
-argument \
"${args[@]}" \
-argument \
...

パラメータが含まれていない場合は、|次のことができます。

while IFS= read -d'|' -r arg

ファイルには以下が含まれます。

-arg1 something|-arg2
something else|-arg3 ...

答え2

command \
-argument \
-argument \
$(cat ./file) \
-argument \
...

する

-argument 
-argument 

または

-argument -argument

のように./file。二重引用符なしでそのまま使用すると、シェルはそれを分割します$IFS(デフォルトはタブ、改行、スペース)。$(cat ./file)

スラッシュを削除する必要がない別のオプションは、文字列を構成してからevalそれを構成することです。

関連情報