bash 脚本 - 尝试连接两个字符串 - 失败

bash 脚本 - 尝试连接两个字符串 - 失败

我想编写一个脚本,该脚本采用当前文件夹名称并在末尾添加后缀 _default 。

到目前为止我的脚本如下所示:

#!/usr/bin/env bash
baseDir=pwd | awk -F/ '{print $NF}'
networkName=$(baseDir)$('_default')

echo $networkName

当我运行这个时,我收到以下错误:

codebrews@mymachine:/docker-local$ ./test.sh
./test.sh: line 3: baseDir: command not found
./test.sh: line 3: _default: command not found

我确信这很简单,我搞砸了,但我看不到它。谢谢。

编辑1

我也尝试过这个:

#!/usr/bin/env bash
baseDir=pwd | awk -F/ '{print $NF}'
networkName=$($baseDir)_default
echo $networkName

但这只是返回

_默认

我现在发现问题是 basedDir 为空。当我在命令行上运行“pwd | awk -F/ '{print $NF}'”时,它可以工作。但它显然在这个脚本文件中不起作用。

答案1

baseDir=pwd | awk -F/ '{print $NF}'

该命令会将变量分配baseDir给字符串pwd,然后将该分配的输出(即无任何内容)通过管道传输到awk,这将不执行任何操作。

networkName=$(baseDir)$('_default')

该命令将尝试将变量分配networkName给命令的输出baseDir(不存在,因此第一个错误)并连接到命令的输出'_default')(不存在,因此第二个错误)。

echo $networkName

因为前面的命令不起作用,所以除了终止换行符之外不会输出任何内容。

我想你正在寻找的是这样的:

#!/usr/bin/env bash
baseDir="$(pwd | awk -F/ '{print $NF}')"
networkName="${baseDir}_default"

echo "$networkName"

相关内容