我尝试运行一个脚本,根据主机名找出路径:例如,如果主机名返回,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 Expansion
bash 手册页的 部分man bash
。