多个参数,带参数的字符串

时间:2015-12-16 19:18:49

标签: linux bash shell

#!/bin/bash

mainDir="$1"
fileName="$2"
preCommand="$3"

echo ${mainDir}
echo ${fileName}
echo ${preCommand}

我试图将早期调用中的文本和参数插入到另一个脚本的参数中。

./script.sh "dir1" "filename" "text with ealier agrument ${mainDir}"

来自我的脚本的回声总是返回:“带有更早的文本的文字”

是否可以在脚本中执行此操作?

2 个答案:

答案 0 :(得分:2)

如果您希望第一个参数成为第三个参数的一部分,则需要明确说明。任

./script.sh "dir1" "filename" "text with ealier agrument dir1"

first=dir1
./script.sh "$first" "filename" "text with earlier argument $first"

答案 1 :(得分:1)

您可以使用"来源"命令

示例:

source ./script.sh "dir1" "filename" "text with ealier agrument ${mainDir}"

当您运行脚本时,您将生成一个新的shell进程作为当前shell的子进程(子进程中的更改不会影响父进程)。当您使用" source"时,您正在当前的shell中运行。

每次运行上面的命令时,带有早期参数$ {mainDir}"的#34;文本将回显给你之前提供给命令的内容。