0
function ctrace {
  echo "+ $@"
  "$@"
}

ctrace echo "hi"

この関数を(引用符で)出力するにはどうすればよいですか?

echo "hi"

このバージョンでは、引用符は失われecho hiます...別の例を次に示します。

a=b
ctrace echo $a

これはecho $a代わりに出力する必要がありますecho b

4

2 に答える 2

1

問題は関数ではなく、呼び出し元です。

最初のケースでは、関数がパラメーターを取得する前に引用符が削除されます。2番目の例で$aは、関数に到達する前に置換が行われます。

試す:

ctrace 'echo "hi"'
ctrace 'echo $a'
于 2013-03-04T19:45:07.460 に答える
0

文字列を一重引用符で囲む必要があります

ctrace 'echo "hi"'
ctrace 'echo $a'
于 2013-03-04T19:45:35.183 に答える