如何在脚本中重建我的 PATH?

如何在脚本中重建我的 PATH?

我已经将 PATH 提取到一个文件并将其列出如下:

/bin
/usr/bin
/usr/local/bin
.
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin
/usr/java/default/bin
/usr/kerberos/bin
/usr/local/bin
/bin
/usr/bin

我现在想从这个文件中提取它并将其恢复为新文件中的一行,每个目录之间用冒号隔开。我得到的是一个空文件,有人能告诉我我做错了什么吗?这是我执行的恢复文件的命令:

echo -e ${bash_list tr \\ :\n} > bash_PATH

答案1

tr从 STDIN (标准输入) 接收输入。尝试以下操作:

$ tr '\n' ':' > output_file  < input_file

您使用了 Bash 参数扩展的语法,但使用文件作为参数,这是不正确的,因为参数只能是变量或特殊的 shell 参数。

要执行您尝试的操作,仅使用bash

$ var="$(<bash_list)"
$ echo "${var//$'\n'/:}" > bash_PATH

现在bash_PATH文件将包含:

/bin:/usr/bin:/usr/local/bin:.:/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin:/usr/java/default/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin

还请注意,“$PATH”中有重复的目录名称(希望这些是为了示例而故意为之),要删除重复项而不更改顺序,您可以尝试

相关内容