如何合并 3 个命令并执行它们

如何合并 3 个命令并执行它们

我尝试运行一个脚本,根据主机名找出路径:例如,如果主机名返回,computer1我想运行path/to/Computer1.py(其中path/to是始终相同的路径)。

我认为路径部分可以使用变量来存储它,然后调用并连接。我现在查找将字符串转换为标题大小写,这似乎有效:

echo "computer1.py" | awk '{printf("%s%s\n",toupper(substr($0,1,1)),substr($0,2))}'

我对 bash 相当陌生,目前我陷入了如何连接这些组件(脚本路径、基于脚本名称hostname)并执行它们的困境。

答案1

Bash 版本 4 引入了内置的大小写修改运算符^,运算符,如果您有最新版本的 bash shell,则可以避免使用 awk 等外部程序进行此类简单的字符串操作。特别是,如果

name=$(hostname)

path="path/to/"

然后

"${path}${name^}"

应该连接字符串,第一个字母name大写。请参阅Parameter Expansionbash 手册页的 部分man bash

相关内容