環境を切り替えることができるbash関数を作成しようとしていますが、以下は私が試したことです。関連するファイルをインラインで編集するためにnpm json
パッケージをグローバルにインストールしましたが、それは必要ないかもしれません。bashで文字列変数を展開してJSONの値を切り替える
devUrl() { 'https://some-url.com'; }
testUrl() { 'https://some-test-url.com'; }
switchEnv() { 'json -I -f config.json -e "this.url = (this.url == "$1" ? "$2" : "$1")"'; }
alias switch='switchEnv devUrl testUrl';
何が間違っていますか/間違っていますか?
私はとtestUrl
の文字列をswitchEnv
関数の二重引用符で囲んでテンプレートを作成しようとしましたが、それは止まってしまいました。
更新:
が、私はこれを試してみました:devUrl='https://some-url.com'
testUrl='https://some-test-url.com'
switchEnv() { json -I -f config.json -e "this.url = (this.url == "$devUrl" ? "$testUrl" : "$devUrl")"; }
が、次のエラーを得たが:
this.url = (this.url == https://some-url.com ? https://some-test-url.com : https://some-url.com)
^
SyntaxError: Unexpected token :
at new Function (<anonymous>)
at main (/usr/local/lib/node_modules/json/lib/json.js:1289:27)
それはいくつかの理由でのhttps後:
が好きではありません。
あなたは小さなものから始めようと自分の生活をはるかに簡単にすることができます。 "hello world"を印刷してビルドする機能を使用して、スクリプトを完成させ、それがなぜ機能していないのかをデバッグしようとするのではなく、 –
あなたは '' $ devurl "'の引用符を* "* this.url'で始まる引用符付きの文字列として扱うので、動作しないリテラルと構文の引用符を混ぜています。 –
使用している 'json'ツールのドキュメントへのリンクを提供できますか? –