何度も調べたり考えたりしている気がする...
他にももっといい方法があるのかもしれない.
問題
シェルスクリプト内で引数をsha256化した結果を使いまわしたかった.
コマンドラインで素直に書くとこんな感じ.
echo -n 'pass'| shasum -a 256 | tr -d ' *-'
これをスクリプト内で実行して, 結果を変数に設定したい.
解決したスクリプト
こんな感じになった.
password='pass' hashingCommand="echo -n "$password" | shasum -a 256 | tr -d ' *-'" sha256Password=$(eval $hashingCommand) echo $sha256Password # デバッグ表示
- まずpasswordという変数に文字列を設定
- 次に変数展開してコマンドを構成
- 2を展開してevalで実行
- $()の外部コマンド実行で結果をsha256Passwordへ設定
感想
これでいいの?