Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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中从脚本到下标携带位置参数的最佳方法_Linux_Bash_Positional Parameter - Fatal编程技术网

Linux中从脚本到下标携带位置参数的最佳方法

Linux中从脚本到下标携带位置参数的最佳方法,linux,bash,positional-parameter,Linux,Bash,Positional Parameter,我设置了一个Crontab,它执行“find”命令,然后在每个参数上执行一个shell脚本。在第一个shell脚本的最后是另一个“find”命令,它执行另一个shell脚本。我的问题是:有没有办法将原始参数从第一个脚本转移到第二个脚本?我基本上只需要第一个脚本参数的原始文件路径/文件名,以便对执行一些参数扩展并获取一些日志文件 以下是脚本的基本内容: Crontab:查找“一些文件”-exec/home/Conversion.sh{} 在Conversion.sh的末尾:查找“一些文件”-exe

我设置了一个Crontab,它执行“find”命令,然后在每个参数上执行一个shell脚本。在第一个shell脚本的最后是另一个“find”命令,它执行另一个shell脚本。我的问题是:有没有办法将原始参数从第一个脚本转移到第二个脚本?我基本上只需要第一个脚本参数的原始文件路径/文件名,以便对执行一些参数扩展并获取一些日志文件

以下是脚本的基本内容:

Crontab:查找“一些文件”-exec/home/Conversion.sh{}

在Conversion.sh的末尾:查找“一些文件”-exec/home/Copy.sh{}

在Conversion.sh之后无法准确跟踪文件,因为我在这些参数上使用了“Filebot”,这会完全更改每个参数的文件名,因此我必须在最后再次使用“find”命令。任何帮助都将受到感激

明确地传递它们:

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{}\