6

Statamicサイトのセットアップをより効率的にするためのスクリプトに取り組んでいます。私が遭遇している問題は、ファイル内の文字列を置き換えるために使用している変数がスラッシュを解除しており、ユーザー入力であるということです。どうすればそれが確実_site_url: http://statamic.comになり_site_url: http://example.comますか?

以下のコードは、スラッシュが存在しない限り機能します。

echo "What's your site URL? Don't forget the protocol (ex. http://)!"
read -e SITE_URL

echo "%s/_site_url: http:\/\/statamic.com/_site_url: $SITE_URL/g
w
q
" | ex _config/settings.yaml
4

2 に答える 2

7

Bourneシェルや汎用Unixシェルの代わりにbashについて具体的に言及したので、Bashの組み込みの検索/置換機能を使用することをお勧めします。

echo "What's your site URL? Don't forget the protocol (ex. http://)!"
read -e SITE_URL

echo Escaped URL: ${SITE_URL//\//\\\/}
于 2014-08-27T22:44:30.790 に答える
3

問題は、exコマンドの区切り文字です。代わりに好きなものを置くことができます、私は@ここで使用します:

これを試してみてください:

 sed -i "s@_site_url: http://statamic.com/_site_url: $SITE_URL@g" _config/settings.yaml

またはあなたのexコマンドで:

echo "What's your site URL? Don't forget the protocol (ex. http://)!"
read -e SITE_URL

echo "%s@_site_url: http://statamic.com@_site_url: $SITE_URL@g
w
q
" | ex _config/settings.yaml
于 2012-10-19T00:48:59.633 に答える