web-dev-qa-db-ja.com

Bash:変数からフォルダー名をファイル名にマージ

まず、このようなすべてのパラメーターを含む構成ファイルを作成します

path="/home/test/"

test.confという名前を付けます。

次に、このコンテンツでシェルスクリプトを作成し、testという名前を付け、chmod +xで実行可能にします。

#!/bin/bash
#read the config file
. /home/test/test.conf

#cat the file /home/test/test
cat `$path`test #This line is the problem

私はこの出力を取得します

./test/test: line 3: /home/test/: Is a directory
cat: test: No such file or directory

ファイル/home/test/testのコンテンツが表示されます。

このスクリプトを正しく記述して、ファイルパスの後に改行しないようにする方法を教えてください。

5
persec

_``_および$()は、可変コンテンツの代わりに使用するのではなく、コマンド実行に使用されます。そのため、bashは_``_で変数の意味を実行しようとし、ディレクトリであるというエラーを返します。

_cat ${path}test_と書くだけで、思い通りに動作します。

詳細については、 bash変数 および コマンド置換 を参照してください。

13
rush