FreeBSDシステムにSubversionスケジューラをインストールするためにbashスクリプトを生成する作業がありましたが、残念ながら期待どおりに動作しませんでした。
私が走るとき
#bash -x ./installSubversion.sh
常にこのエラーメッセージが表示されます。
+ REPOPATH=$'/usr/ports/devel/subversion\r'
+ CHECKPATH=$'/usr/local/bin/svnserve\r'
>./installSubversion.sh: line 22: syntax error: unexpected end of file
これは installSubversion.sh スクリプトです。
#!/usr/bin/env bash
###########
### Installing subversion(svn) on Freebsd
###########
REPOPATH="/usr/ports/devel/subversion"
CHECKPATH="/usr/local/bin/svnserve"
if [ ! -x "$CHECKPATH" ] || [ "$1" = "-force" ] ;
then
echo "Trying to install subversion from ports"
if [ "$1" = "-force" ];
then
/usr/sbin/pkg_delete -fx subversion-
cd $REPOPATH
/usr/bin/make -DBATCH reinstall clean
else
cd $REPOPATH
/usr/bin/make -DBATCH install clean
fi
else
echo "subversion is Installed"
fi
私は何が間違っていましたか?
答え1
エラーメッセージREPOPATH=$'/usr/ports/devel/subversion\r'
は、スクリプトに\r\n
UnixスタイルではなくDOSスタイルの行末があることを示します\n
。この問題は簡単なコマンドで解決するsed
か、次の方法で解決できます。DOS 2 Unixシステムにすでにインストールされている可能性のあるコマンドです。
テキストエディタには、行末スタイルを選択するオプションがあります。その場合は、* nixで使用するスクリプトを編集するときにUnixスタイルを使用してください。このようなエディタを使用して既存のファイルの行末スタイルを変換できますが、複数のファイルを回復したい場合は少し面倒です。