bash 構成ファイルを引数として渡す

bash 構成ファイルを引数として渡す

コマンドラインからファイル引数をスクリプトに渡そうとしたが、config期待した結果は得られません。ありがとうございます:)。

設定はコマンドラインから次のように呼び出されます。

bash script.sh /path/to/config.txt

/path/to/config.txtの内容

#File1comment
var1=/path/to/file1
#File2comment
var2=/path/to/file2

script.shの内容

config=$1

. $config

echo -e "$@"
test -n "$1" && set -- a b c

現在の

/path/to/config.txt

欲しい --- スクリプトに使用可能なすべてのファイル ---

/path/to/file2
/path/to/file2

新しいコード

config=$1

set -- $config
echo -e "$@"
while read line; do
  printf "$line" >script.sh
done <"$config"

ベストアンサー1

構成ファイルで必要な作業または実行する必要がある操作は少し不明瞭です。

構成ファイルがスクリプトに含めるファイルである場合(例のいずれかで行ったように)、$configファイル名のコードが実行されます。

filenameのコードを実行して$config2つの変数var1sumを設定しますvar2。その値を使用するには、$var1スクリプトでおよびを使用します。$var2

#!/bin/bash

config=$1

. $config

printf 'var1 is %s\n' "$var1"
printf 'var2 is %s\n' "$var2"

=次が指すファイルの文字の後の文字列を解析する$config場合いいえファイルのソースをインポートして、sed次のように使用します。

#!/bin/bash

config=$1

sed -n '/^#/d; /[^=]*=/s///p' "$config"

このスクリプトのコマンドは、文字で始まるか、文字を含まないすべての行をsed無視します。 1行ずつフィルタリングして、行の最初の文字とその前のすべての文字を削除し、残りのデータを印刷します。#==

おすすめ記事