bash 函数调用中的引号问题
An issue with quotes in a bash call of a function
我写了一个小 bash 脚本,看起来像这样:
VAR1="test"
VAR2="test2"
letsDoSomeStuff() {
echo
echo
echo `
}
fswatch -0 . | xargs -0 -n 1 -I {} bash -c 'letsDoSomeStuff {} "$VAR1 $VAR2"'
我想做的是查找文件夹中的更改(通过样本),然后在 bash 脚本的函数中对更改的文件执行一些操作。不幸的是,我需要传递 $VAR1 和 $VAR2 作为参数,因为它们不会 "survive" xargs 调用。
bash 脚本工作正常。但是,$VAR1 和 $VAR2 没有正确传递给函数。当我启动脚本时,它会为每个更改的文件输出:
filename
empty line
empty line
这里有人可以帮我打这个电话吗?我想我弄乱了单引号和双引号,但找不到正确的方法。
提前致谢
诺伯特
您需要将参数传递给您的函数调用:
fswatch -0 . |
xargs -0 -n 1 -I {} bash -c 'letsDoSomeStuff "" "" ""' - {} "$VAR1" "$VAR2"
我写了一个小 bash 脚本,看起来像这样:
VAR1="test"
VAR2="test2"
letsDoSomeStuff() {
echo
echo
echo `
}
fswatch -0 . | xargs -0 -n 1 -I {} bash -c 'letsDoSomeStuff {} "$VAR1 $VAR2"'
我想做的是查找文件夹中的更改(通过样本),然后在 bash 脚本的函数中对更改的文件执行一些操作。不幸的是,我需要传递 $VAR1 和 $VAR2 作为参数,因为它们不会 "survive" xargs 调用。
bash 脚本工作正常。但是,$VAR1 和 $VAR2 没有正确传递给函数。当我启动脚本时,它会为每个更改的文件输出:
filename
empty line
empty line
这里有人可以帮我打这个电话吗?我想我弄乱了单引号和双引号,但找不到正确的方法。
提前致谢
诺伯特
您需要将参数传递给您的函数调用:
fswatch -0 . |
xargs -0 -n 1 -I {} bash -c 'letsDoSomeStuff "" "" ""' - {} "$VAR1" "$VAR2"