bash - 如何将定位的第一个结果分配给 bash 变量?

标签 bash variables find locate

我可以从 bash 中为某个变量分配一个路径:

VAR1=/home/alvas/something

我可以自动找到它:

$ cd
$ locate -b "something" .
/home/alvas/something
/home/alvas/someotherpath/something

但如何将定位的第一个结果分配为变量值?

我尝试了以下但它不起作用:

alvas@ubi:~$ locate -b 'mosesdecoder' . | VAR1=
alvas@ubi:~$ VAR1
VAR1: command not found

最佳答案

您需要将 locate 命令的输出分配给变量:

VAR1=$(locate -b 'mosesdecoder' . | head -n 1)

(使用 head 获取顶部的 n 行)。

构造 $(...) 称为命令替换,您可以在 Bash Reference Manual命令替换 部分中阅读它或 POSIX Shell Specification 的。

关于bash - 如何将定位的第一个结果分配给 bash 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867388/

相关文章:

bash - 覆盖 git clone 的 bash 补全

bash - 使用命令行将所有空文件复制到文件夹中

php - PHP 中的静态变量

c++ - 在 Unicode 中转换变量

Linux查找同名文件复制到目标文件夹不覆盖

java - 无法找到或加载主类、环境变量

c++ - 我可以 std::find stringstream 中的字符串吗?

bash - 打破无限循环

bash - 如何通过 curl 请求来暴力破解不安全的登录

bash 脚本在变量赋值时崩溃