1

これどうやってするの?

[root@ipaserver ~]# ls | sed 's/.*/"&"/'
"anaconda-ks.cfg"
"ca-agent.p12"

このような?

[root@ipaserver ~]# !QUOTED
QUOTED="sed 's/.*/\"&\"/'"
[root@ipaserver ~]# echo $QUOTED
sed 's/.*/"&"/'
[root@ipaserver ~]# ls| $QUOTED
sed: -e expression #1, char 1: unknown command: `''

私はあらゆる種類のバリエーションとネストされたエコーコマンド/プロセスの置換と評価を試しました。これは、スクリプトの目的で行うことは可能ですか?

4

4 に答える 4

4

一方通行:

QUOTED='sed s/.*/"&"/'
ls | $QUOTED
于 2013-05-28T03:29:48.067 に答える
2

あなたが持っているものは、次のものを追加することで私にとってはうまくいきますeval

$ QUOTED="sed 's/.*/\"&\"/'"
$ echo $QUOTED
sed 's/.*/"&"/'
$ ls | eval $QUOTED
"file1"
"file2"
"file3"
"file4"
于 2013-05-28T03:29:10.333 に答える
0

通常、この種のことを処理する最善の方法は、コマンドを配列として保存することです。

sedcmd=(sed 's/.*/"&"/')
ls | "${sedcmd[@]}"

BashFAQ #50を参照してください: コマンドを変数に入れようとしていますが、複雑なケースは常に失敗します! より多くのオプションと議論のために。

于 2013-05-28T04:43:23.887 に答える