内部変数による変数の初期化

内部変数による変数の初期化

これを ksh で動作させるにはどうすればよいですか?

variable1="$(strings /.sh_history | grep '^\user' | tail -1 | cut -d' ' -f2)"
variable2="$(command ${variable1})"

基本的に、変数を宣言するコマンドで使用する文字列として、variable1 を使用したいと思います。

更新: 問題は実際には私の構文とは関係ありませんでした。エラーは、テキストがフォーマットされたために問題が発生したためです。テキスト修飾子を区切り文字として使用して切り取り、データを正常に取得できました。スクリプトをよりクリーンにするために、推奨された解決策の両方を使用しました。

答え1

シェルコードを保存する場合は、機能:

function1() { strings /.sh_history | grep "$@"; }
variable1=$(function1 foo)

答え2

使用eval

variable1='strings /.sh_history | grep'
variable2=$(eval "$variable1 foo")

関連情報