'No such file or directory' 当 运行 Makefile 脚本
'No such file or directory' when running Makefile script
文件夹结构设置如下:
Main directory
\_ keyspaces
\_ f1
\_ bootstrap.cql
\_ anotherFolder
\_ 0001-something.cql
\_ f2
\_ bootstrap.cql
\_ anotherFolder
\_ 0001-something.cql
\_ 0002-moreSomething.cql
我在主目录中有一个 Makefile,其中包含以下代码:
do_stuff:
for ks in keyspaces/*; do \
cqlsh -f "$${ks}/bootstrap.cql"; \
done
当我从我的终端(使用 iTerm2)在主目录中 运行 make do_stuff
时,出现错误,说明如下:
Can't open 'keyspaces/f1/bootstrap.cql': [Errno 2] No such file or directory: 'keyspaces/f1/bootstrap.cql'
command terminated with exit code 1
Can't open 'keyspaces/f2/bootstrap.cql': [Errno 2] No such file or directory: 'keyspaces/f2/bootstrap.cql'
command terminated with exit code 1
make: *** [do_stuff] Error 1
但是,如果我 运行 在我的终端中这样做: cat keyspaces/f1/bootstrap.sql
我打印出该文件的内容,所以路径是正确的并且它确实存在,但 cqlsh 无法识别它?
查看 the Cassandra/cqlsh docs,我似乎正确地使用了 -f
命令,所以我不知道为什么会出现错误。
我将从简单的步骤开始,以消除潜在问题
.
├── Makefile
└── keyspaces
├── f1
│ └── bootstrap.cql
└── f2
└── bootstrap.cql
使用以下 Makefile,工作正常
do_stuff:
for ks in keyspaces/*; do \
cat "$${ks}/bootstrap.cql"; \
done
执行
make
for ks in keyspaces/*; do \
cat "${ks}/bootstrap.cql"; \
done
a
b
仔细检查,在 Main directory
内你可以调用
cqlsh -f "keyspaces/f1/bootstrap.cql"
也许你可以委托给 find
?
do_stuff:
find `pwd` -name "*.cql" -exec cat {} \;
文件夹结构设置如下:
Main directory
\_ keyspaces
\_ f1
\_ bootstrap.cql
\_ anotherFolder
\_ 0001-something.cql
\_ f2
\_ bootstrap.cql
\_ anotherFolder
\_ 0001-something.cql
\_ 0002-moreSomething.cql
我在主目录中有一个 Makefile,其中包含以下代码:
do_stuff:
for ks in keyspaces/*; do \
cqlsh -f "$${ks}/bootstrap.cql"; \
done
当我从我的终端(使用 iTerm2)在主目录中 运行 make do_stuff
时,出现错误,说明如下:
Can't open 'keyspaces/f1/bootstrap.cql': [Errno 2] No such file or directory: 'keyspaces/f1/bootstrap.cql'
command terminated with exit code 1
Can't open 'keyspaces/f2/bootstrap.cql': [Errno 2] No such file or directory: 'keyspaces/f2/bootstrap.cql'
command terminated with exit code 1
make: *** [do_stuff] Error 1
但是,如果我 运行 在我的终端中这样做: cat keyspaces/f1/bootstrap.sql
我打印出该文件的内容,所以路径是正确的并且它确实存在,但 cqlsh 无法识别它?
查看 the Cassandra/cqlsh docs,我似乎正确地使用了 -f
命令,所以我不知道为什么会出现错误。
我将从简单的步骤开始,以消除潜在问题
.
├── Makefile
└── keyspaces
├── f1
│ └── bootstrap.cql
└── f2
└── bootstrap.cql
使用以下 Makefile,工作正常
do_stuff:
for ks in keyspaces/*; do \
cat "$${ks}/bootstrap.cql"; \
done
执行
make
for ks in keyspaces/*; do \
cat "${ks}/bootstrap.cql"; \
done
a
b
仔细检查,在 Main directory
内你可以调用
cqlsh -f "keyspaces/f1/bootstrap.cql"
也许你可以委托给 find
?
do_stuff:
find `pwd` -name "*.cql" -exec cat {} \;