Bashスクリプトを使用していくつかのテキストを含むファイルを作成する方法

Bashスクリプトを使用していくつかのテキストを含むファイルを作成する方法

私はクラス名を引数として使用するbashスクリプトを.shに書きました。このスクリプトを実行すると、classスクリプトと同じスペースにディレクトリが作成されます。

次に、ディレクトリ内のパラメータから受け取ったクラス名と同じクラス名を持つPHPファイルを作成しますclass。ただし、同じファイルがすでに存在する場合は、プログラムを終了してください。

問題:Microsoft Windowsでは動作しますが、Gnu / Linuxでも実行する必要があります。

これは私のものです。.sh

#!/bin/bash

CURRENT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
mkdir -p $CURRENT_PATH/class
cd $CURRENT_PATH/class
if [ -f "[email protected]" ];
then
   exit 1
else
   echo "class $@
{
}" > [email protected]
fi

ベストアンサー1

私が見る唯一の問題は、引用符が欠落していることです。そのため、ディレクトリ/ファイル名にスペースが含まれているとエラーが発生します。

#!/bin/bash

current_path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
mkdir -p "$current_path/class"
cd "$current_path/class"
if [ -f "$1.php" ];
then
   exit 1
else
   echo "class $1
{
}" > "$1.php"
fi

使い方に関する質問もあります"$@"。欲しいですか?そんな意味でしたか"$*"

そして変数名は小文字でなければなりません。これがどのように問題を引き起こすのか理解していませんが、バグが発生するのを待っています。

実行すると、shellcheckほとんどのエラーが検出されます。

おすすめ記事