【发布时间】:2016-06-25 03:52:58
【问题描述】:
我写了一个小 bash 脚本,看起来像这样:
VAR1="test"
VAR2="test2"
letsDoSomeStuff() {
echo $1
echo $2
echo $3`
}
fswatch -0 . | xargs -0 -n 1 -I {} bash -c 'letsDoSomeStuff {} "$VAR1 $VAR2"'
我想做的是查找文件夹中的更改(通过样本),然后在 bash 脚本的函数中对更改的文件执行一些操作。不幸的是,我需要将 $VAR1 和 $VAR2 作为参数传递,因为它们不能“生存” xargs 调用。
bash 脚本运行良好。但是,$VAR1 和 $VAR2 未正确传递给函数。当我启动脚本时,它会为每个更改的文件输出:
filename
empty line
empty line
这里有人可以帮我打这个电话吗?我想我弄乱了单引号和双引号,但找不到正确的方法。
提前致谢
诺伯特
【问题讨论】:
-
将 $VAR1 和 $VAR2 放在单引号中会将它们变成一个标记,因此它们将被视为 letDoSomeStuff 的单个参数。