コマンド内のBashパラメータの置換

コマンド内のBashパラメータの置換

私は簡単に理解しましたパラメータの置換、次の部分文字列を含める

foo="Hello World";
greeting=${foo:0:6}

しかし、これを命令で行うことはできますか?

greeting="Hello"
md5greeting=$(echo $greeting | md5sum :0:6)
>>b1946a

出力は「hello」md5sumの最初の6文字です。

どうやってこれを達成できますか?

ベストアンサー1

少なくともbashでは、パラメータ置換が機能する方法ではありません。実際の変数(パラメータ)が必要で、それを直接操作します。たとえば、

var=$(echo abcdefgh | cmd1 | cmd2 | ... )
var2="${var:2:4}"

例外は、zshコマンド置換を「即時」パラメータに変換し、上記の操作を1行で実行できることです。

var2=${"$(echo abcdefgh | cdm1 | cmd2 | ... )":2:4}

おすすめ記事