我有我运行的这个命令。让我们称之为foo
。我可以在foo
不指定完整路径的情况下执行,foo
如下所示:
$ foo
missing args
我怀疑foo
是一个 bash 脚本,所以我想查看 中的源代码foo
,但是当我这样做时,which foo
我会收到标准错误消息:
which: no foo in (/usr/local/bin ...removed for brevity ...)
是什么赋予了?
我有一个包含以下内容的文件:
BWA='/software/bwa/bwa-0.7.12/bwa'
SAMTOOLS='/software/samtools/samtools-1.3.1/samtools'
以上工具在我的电脑上:
pwd
/hic-fq => /scratch/waterhouse_team/benth/dbg2olc-40x/hic-fq接下来,我使用了这两个sed
命令:
sed -i.bak 's|/software/bwa/bwa-0.7.12/bwa|$(which bwa)|g' mapping_arima.sh
sed -i.bak 's|/software/samtools/samtools-1.3.1/samtools|$(which samtools)|g' mapping_arima.sh
不幸的是,作为我收到的输出:
BWA='$(which bwa)'
IN_DIR='$(`pwd`)/hic-fq'
我必须如何更改sed
命令才能获得:
先感谢您
设想
我在 GitHub 上有一个 ProductivityScripts 项目,当我安装 Linux (Debian 9) 时,我添加了这个文件夹以PATH
方便使用。
即,我将以下行添加到~/.bashrc
:
export PATH="~/Dev/ProductivityScripts:$PATH"
有用。我现在可以从任何地方按名称从该文件夹中运行脚本。
alec@my_host:~$ capsalt
SUCCESS!
但是,如果我输入,which capsalt
我不会得到任何输出。
which
大多数事情都有效。
alec@my_host:~$ which git
/usr/bin/git
问题
不应该which
还跟踪可从手动添加到 PATH 的位置获得的脚本吗?或者还有其他原因导致这不起作用?