运行命令,然后在一行中执行参数替换

Fel*_*rez 7 bash command-substitution

bash# hostname
host1.example.com
Run Code Online (Sandbox Code Playgroud)

我只想要host1。所以:

SHORT_HOST=$(/bin/hostname)
SHORT_HOST=${SHORT_HOST%%.*}
Run Code Online (Sandbox Code Playgroud)

我可以把它变成单衬吗?- 或者 - 使 $SHORT_HOST 只读但仍获得短主机名的最佳方法是什么?

Ulr*_*arz 5

如果您不仅限于 bash 的工具,不妨试试

SHORT_HOST=$(hostname | sed -e 's/\..*//')
Run Code Online (Sandbox Code Playgroud)

或者

SHORT_HOST=$(hostname | cut -d. -f1)
Run Code Online (Sandbox Code Playgroud)