|
我想利用下列命令打印文件前5行:
cmd="'1,5p'"
sed -n $cmd file1
本意是想运行 sed -n '1,5p' file1
结果得到:
sed: -e expression #1, char 1: unknown command: `''
echo $cmd 显示 '1,5p'
我用-x查看了下
[root@asr1k-dev-x2100-6 shells]# sh -x
sh-3.2# xyf="'1,5p'"
+ xyf=''\''1,5p'\''' <-这里都是单引号
sh-3.2# sed -n $xyf a1
+ sed -n ''\''1,5p'\''' a1
sed: -e expression #1, char 1: unknown command: `''
sh-3.2#
当然,我可以用cmd="1,5p", 没问题,但是我对这个问题感到很费解。
似乎创建变量的时候,shell自动加了很多单引号。我看了论坛里关于shell处理命令行的帖子,但还是理解不了。请问能否指点一下,谢谢。 |
|