【发布时间】:2010-10-24 20:12:21
【问题描述】:
我在 bash 脚本中尝试了以下各种形式:
#!/bin/bash
svn diff $@ --diff-cmd /usr/bin/diff -x "-y -w -p -W $COLUMNS"
但我无法获得正确扩展 COLUMNS 环境变量的语法。
我尝试了以下各种形式:
svn diff $@ --diff-cmd /usr/bin/diff -x '-y -w -p -W $COLUMNS'
和
svn diff $@ --diff-cmd /usr/bin/diff -x '-y -w -p -W ${COLUMNS}'
和
eval svn diff $@ --diff-cmd /usr/bin/diff -x "-y -w -p -W $COLUMNS"
建议?
【问题讨论】:
-
那么这些例子在你的案例中产生了什么?你希望他们生产什么?
-
脚本外的命令有效吗?
-
你试过
svn diff $@ --diff-cmd /usr/bin/diff -x "-y -w -p -W ""$COLUMNS" -
顺便说一句,使用
$@unquoted 使其与$*完全相同——也就是说,它将"foo bar"分成两个单独的参数,foo和bar。如果您想保留给您的原始参数列表,您需要"$@"。
标签: bash quotes environment