我想你在一个地方有文件( /path/to/originals
)并希望将它们复制到目标位置( /path/to/destination
)然后修改它们。您当前的脚本如下所示:
mkdir /path/to/destination
cp /originals/this-file /path/to/destination
cp /originals/this-other-file /path/to/destination
modify-somehow /path/to/destination/this-file
modify-somehow /path/to/destination/this-other-file
但你不喜欢到处硬编码/路径/到/目的地。
因此,您可以要求使用“第一个位置参数的值”而不是硬编码 /path/to/destination
。正如其他人提到的,第一个位置参数的值是 $1
。
所以你的脚本应该是:
mkdir $1
cp /originals/this-file $1
cp /originals/this-other-file $1
modify-somehow $1/this-file
modify-somehow $1/this-other-file
您应该通过添加目标路径作为参数来调用它:
my-script /path/to/destination
我试图保持脚本简单,但你可以改进它,就像使用单一脚本一样 cp
命令复制多个文件。您也可以使用变量 /originals
path(但不是参数,这个听起来像是脚本开头的常量声明)
最后,请考虑如果您的文件名有空格,则需要包围您的文件名 $1
用双引号。