我正在尝试编写一个能够按名称查找所有进程的函数,然后让您逐个向它们发送信号。以下是我无法正常工作的最小部分代码:
ps -ef | grep "$@"
如果我用过
ab cd
作为函数的输入,我希望生成
ps -ef | grep "ab cd"
但它会生成
ps -ef | grep ab cd
寻找' ab'在文件' cd'。
答案 0 :(得分:2)
您需要"$*"
,而不是"$@"
。 This answer详细介绍,但基本上"$@"
分别引用每个参数,而"$*"
引用整个混乱。因此,"$@"
相当于"ab" "cd"
; "$*"
相当于"ab cd"
。