Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 命令';使用-exec'查找;壳内脚本_Linux_Bash_Shell_Find_Exec - Fatal编程技术网

Linux 命令';使用-exec'查找;壳内脚本

Linux 命令';使用-exec'查找;壳内脚本,linux,bash,shell,find,exec,Linux,Bash,Shell,Find,Exec,命令: find . -name "database.*-10-15.sql.gz" -exec tar -rf backup.1015.sql.tar {} \; 在命令行中工作非常完美 但是如果我把它写进剧本里,它就不起作用了 #!/bin/bash find . -name \"database.*-10-15.sql.gz\" -exec tar -rf backup.1015.sql.tar {} \; 是否需要转义引号? 对于我来说,如果我键入以下内容,就会得到结果: find

命令:

find . -name "database.*-10-15.sql.gz" -exec tar -rf backup.1015.sql.tar {} \;
在命令行中工作非常完美

但是如果我把它写进剧本里,它就不起作用了

#!/bin/bash
find . -name \"database.*-10-15.sql.gz\" -exec tar -rf backup.1015.sql.tar {} \;

是否需要转义引号? 对于我来说,如果我键入以下内容,就会得到结果:

find . -name "database.*"
在bash脚本中运行

但是当我逃避引用时,我没有得到任何结果

您还可以尝试调试脚本,方法是在脚本中使用以下设置:

set -x
或者通过跑步

bash -x scriptname
使用转义引号,您可以看到您也在名称中准确地搜索引号:

$ bash -x scriptname
+ find . -name '"database.*"'

在脚本的命令行中放置您使用的相同命令。