私は画面に "*"を印刷するために以下のシェルスクリプトを書いていますが、スクリプトを実行すると、現在のディレクトリにスクリプトがあるすべてのファイルとディレクトリがリストされます。誰かが、現在のディレクトリにあるすべてのファイルとディレクトリをスクリプトが一覧表示する理由を教えてもらえますか?シェルスクリプトが "*"になると、ファイルとディレクトリの一覧が表示されるのはなぜですか?
#!/bin/bash
TEST="*";
echo $TEST
私は画面に "*"を印刷するために以下のシェルスクリプトを書いていますが、スクリプトを実行すると、現在のディレクトリにスクリプトがあるすべてのファイルとディレクトリがリストされます。誰かが、現在のディレクトリにあるすべてのファイルとディレクトリをスクリプトが一覧表示する理由を教えてもらえますか?シェルスクリプトが "*"になると、ファイルとディレクトリの一覧が表示されるのはなぜですか?
#!/bin/bash
TEST="*";
echo $TEST
$TEST
の周りにいくつかの""
が不足しているため。
お試しecho "$TEST"
シェルは、あなたのケースのbashがコマンドに渡す前に*を展開するので、すべてのファイルとフォルダを表示します。
解決策は単純です:
#!/bin/bash
TEST="*";
echo "$TEST"