我想编写一个脚本,该脚本采用当前文件夹名称并在末尾添加后缀 _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"