相关疑难解决方法(0)

从$ PATH变量中删除冗余路径

我在$ PATH变量中定义了相同的路径6次.

我没有退出检查它是否有效.

如何删除重复项?

$ PATH变量如下所示:

echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin:/home/flacs/Programmes/USFOS/bin
Run Code Online (Sandbox Code Playgroud)

我该怎么把它重置为

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Run Code Online (Sandbox Code Playgroud)

linux bash path environment-variables sh

122
推荐指数
5
解决办法
27万
查看次数

Shell - 将可变内容写入文件

我想将变量(此处称为var)的内容复制到文件中.

文件名存储在另一个变量中destfile.

我这样做有问题.这是我尝试过的:

cp $var $destfile
Run Code Online (Sandbox Code Playgroud)

我也用dd命令尝试了同样的事情......显然shell认为$var是指一个目录,所以告诉我找不到目录.

我该如何解决这个问题?

linux bash shell

77
推荐指数
5
解决办法
22万
查看次数

如何在shell脚本中操作$ PATH元素?

是否有一种从PATH类shell变量中删除元素的惯用方法?

那是我想要的

PATH=/home/joe/bin:/usr/local/bin:/usr/bin:/bin:/path/to/app/bin:.
Run Code Online (Sandbox Code Playgroud)

删除替换/path/to/app/bin,而不重挫可变的其余部分.允许我新元素放在任意位置的额外点数.目标将由明确定义的字符串识别,并且可以在列表中的任何点处发生.

我知道我已经看到了这一点,并且可以自己拼凑一些东西,但我正在寻找一个很好的方法.便携性和标准化加分.

我使用bash,但欢迎你最喜欢的shell中的例子.


这里的上下文是需要在多个版本之间方便地切换(一个用于进行分析,另一个用于处理框架)的大型科学分析包,它产生几十个可执行文件,数据存储在文件系统周围,并使用环境变量帮助找到所有这些东西.我想编写一个选择版本的脚本,并且需要能够删除$PATH与当前活动版本相关的元素,并用与新版本相关的相同元素替换它们.


这与$PATH在重新运行登录脚本等时防止重复元素的问题有关.


unix shell path-variables idioms

30
推荐指数
2
解决办法
2万
查看次数

如何捕获CMake命令行参数?

我想在生成的脚本中记录传递给cmake的参数.例如,"my-config.in"将由cmake处理,它的定义如下:

配置= "@ CMAKE_ARGS @"

之后cmake,my-config将包含这样的行:

config =" - DLINUX -DUSE_FOO = y -DCMAKE_INSTALL_PREFIX =/usr"

我试过CMAKE_ARGS,CMAKE_OPTIONS但失败了.没有文件提到这一点.:-(

cmake

12
推荐指数
1
解决办法
1万
查看次数

如何避免在csh中复制路径变量

通常在cshrc文件中有类似的东西来设置路径:

set path = ( . $otherpath $path )
Run Code Online (Sandbox Code Playgroud)

但是,当您多次获取cshrc文件时,路径会重复,您如何防止重复?

编辑:这是一种不干净的方式:

set localpaths = ( . $otherpaths )
echo ${path} | egrep -i "$localpaths" >& /dev/null
if ($status != 0) then
    set path = ( . $otherpaths $path )
endif
Run Code Online (Sandbox Code Playgroud)

csh path-variables path environment-variables

9
推荐指数
2
解决办法
8506
查看次数

标签 统计

bash ×2

environment-variables ×2

linux ×2

path ×2

path-variables ×2

shell ×2

cmake ×1

csh ×1

idioms ×1

sh ×1

unix ×1