Linux中从脚本到下标携带位置参数的最佳方法
我设置了一个Crontab,它执行“find”命令,然后在每个参数上执行一个shell脚本。在第一个shell脚本的最后是另一个“find”命令,它执行另一个shell脚本。我的问题是:有没有办法将原始参数从第一个脚本转移到第二个脚本?我基本上只需要第一个脚本参数的原始文件路径/文件名,以便对执行一些参数扩展并获取一些日志文件 以下是脚本的基本内容: Crontab:查找“一些文件”-exec/home/Conversion.sh{}强> 在Conversion.sh的末尾:查找“一些文件”-exec/home/Copy.sh{}强> 在Conversion.sh之后无法准确跟踪文件,因为我在这些参数上使用了“Filebot”,这会完全更改每个参数的文件名,因此我必须在最后再次使用“find”命令。任何帮助都将受到感激 明确地传递它们:Linux中从脚本到下标携带位置参数的最佳方法,linux,bash,positional-parameter,Linux,Bash,Positional Parameter,我设置了一个Crontab,它执行“find”命令,然后在每个参数上执行一个shell脚本。在第一个shell脚本的最后是另一个“find”命令,它执行另一个shell脚本。我的问题是:有没有办法将原始参数从第一个脚本转移到第二个脚本?我基本上只需要第一个脚本参数的原始文件路径/文件名,以便对执行一些参数扩展并获取一些日志文件 以下是脚本的基本内容: Crontab:查找“一些文件”-exec/home/Conversion.sh{} 在Conversion.sh的末尾:查找“一些文件”-exe
find "some files" -exec /home/Copy.sh {} "$@" \;
只需确保在任何位置参数中没有分号,在
$1
中没有+
,或者在任何{}
中没有分号,因为这将真正影响查找-exec
。如果位置参数来自用户输入(并且文件名应被视为用户输入),请真正执行健全性检查,否则这会受到任意代码执行的影响代码>或+
,但这是一个很难解决的问题。是的,这就是我的意思!(如果还不够清楚的话,很抱歉)。谢谢你的建议!子脚本(Copy.sh)是否仍然能够从父脚本(Conversion.sh)展开第一个位置参数($1)?我的印象是位置参数是运行脚本的shell所独有的?如果是这样,是否可以将文件路径/文件名永久设置为两个脚本都可以访问的变量?您可以在Conversion.sh
中创建导出的变量,然后让Copy.sh
在其环境中查找该变量。这可能比将值作为位置参数传递更好<代码>导出文件路径=$1文件路径=$2;查找“一些文件”-exec/home/Copy.sh{}\代码>。