代码: 全选
#!/bin/sh
VIMRC=/etc/vimide/vimrc
vim -u "$VIMRC" $@
我要的效果是
vim -u "$VIMRC" "$1" "$2" ...
代码: 全选
#!/bin/sh
VIMRC=/etc/vimide/vimrc
vim -u "$VIMRC" $@
代码: 全选
./yourscript "my file" "my file1"
当参数传递给脚本的时候,该解析的已经解析了,问题就在于 $@ 引用的是不带引号的众参数。文档虽然说eexpress 写了:bash dash。。都会对参数解释,去掉各种“引号等。
基本只按照空格处理。
你可以使用''包括参数。脚本里面取的后,传给其他软件的时候,还要''包裹一次。
但实际上if $1 is “abc” and $2 is “def ghi”, then "$@" expands to the two arguments:
"abc" "def ghi"
代码: 全选
$@ 得到
abc def ghi
"$@" 得到
"abc def ghi"
代码: 全选
vimide "my main.c" "makefile"
代码: 全选
vim -u /etc/vimide/vimrc my main.c makefile
代码: 全选
vim -u /etc/vimide/vimrc "my main.c makefile"
代码: 全选
sh-4.1$ set a b 'c d e'
sh-4.1$ for i in $@ ; do echo "$i" ; done
a
b
c
d
e
sh-4.1$ for i in "$@" ; do echo "$i" ; done
a
b
c d e
sh-4.1$
代码: 全选
] ls -ld //
代码: 全选
] ls -ld //