Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash脚本将文件夹/目录添加到linux中不工作的路径_Linux_Bash_Backtrack Linux - Fatal编程技术网

Bash脚本将文件夹/目录添加到linux中不工作的路径

Bash脚本将文件夹/目录添加到linux中不工作的路径,linux,bash,backtrack-linux,Linux,Bash,Backtrack Linux,我创建了一个bash脚本来添加 /My\u Scripts/Bash\u Scripts 到linux的默认路径 !/bin/bash #This Script is used to add a folder/diectory to the PATH.. echo -e "\e[92m\e[1mCREATING PATH...........\n\n" cd mkdir My_Scripts cd My_Scripts mkdir Bash_Scripts cd export PATH=$

我创建了一个bash脚本来添加
/My\u Scripts/Bash\u Scripts
到linux的默认路径

!/bin/bash
#This Script is used to add a folder/diectory to the PATH..


echo -e "\e[92m\e[1mCREATING PATH...........\n\n"
cd
mkdir My_Scripts
cd My_Scripts
mkdir Bash_Scripts
cd

export PATH=$PATH:$HOME/My_Scripts/Bash_Scripts
echo -e "\e[92m\e[1mPATH CREATON SUCCESSFUL\n \e[39m"
echo $PATH
脚本的输出是

root@kali:~/Desktop# bash add_path
CREATING PATH...........


PATH CREATON SUCCESSFUL

`/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/My_Scripts/Bash_Scripts'
但是如果我在终端外部键入
echo$PATH
,则不会添加路径

root@kali:~/Desktop# $PATH
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: No such file or directory

您的更改仅在当前shell中受影响。请将该项放入.bashrc文件中。它将影响所有终端。打开.bashrc文件,添加下面的行并运行该文件-

 vim ~/.bashrc
 export PATH="$PATH:/home/username"
 ~/.bashrc 
编辑父shell

script.sh

#!/bin/bash 
export "PATH=$PATH:$HOME/My_Scripts/Bash_Scripts"
echo $PATH
$~PATH=$(./script.sh)

$~echo$路径

/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/loganaayahee/My_Scripts/Bash_Scripts

第一件事-您应该使用
echo$PATH
。只需键入
$PATH
即可尝试执行该命令,因此“无此类文件或目录错误”

接下来-
/root/My_Scripts/Bash_Scripts
并没有真正添加到
路径中。您在中看到的第一个输出在脚本内部完成,因此可以在那里看到更改

原因是
PATH
将仅在脚本shell的上下文中设置,将其作为
source add\u PATH
执行以保留变量中的更改(但仅适用于当前shell)


如果希望变量在所有shell中都是持久的,请将其添加到
/.bashrc
(因为您是以root用户身份运行的)

您正在启动一个新的bash进程,
PATH
仅在新进程的上下文中修改。当此进程退出时,在其环境中所做的更改不会传播到父进程

相反,您可能希望在当前bash进程的上下文中修改
PATH
。如果您暂时需要,可以使用脚本
source
将在当前bash进程的上下文中运行。小心任何副作用-如
cd
将更改目录,
exit
将终止当前bash进程

如果您希望在以后的所有交互式会话中永久更改,可以修改
~/.bashrc


另外,的语法是
#/path/to/program
,您缺少一个
#

谢谢您的回复。。现在我知道是什么导致了这个问题。你能告诉我应该对脚本做些什么更改,以便我可以在将来的交互会话中永久使用它吗?在你的.bashrc.sir中包括
export PATH=$PATH:$HOME/My_Scripts/Bash_Scripts
。我不熟悉Bash编程。你能告诉我整个脚本吗?每个人都开始新的。请看,谷歌是你最好的朋友:)先生,谷歌搜索不成功,所以请你写一个bash脚本,将/My_Scripts/bash_脚本复制到。bashrc谢谢你的回复。。。现在我似乎明白了这个问题。。但是我不知道如何使它自动化。。你能告诉我,我必须在我的脚本中做些什么更改,才能使它自动显示到某个文件中,并在你的.bashrc脚本中生成这个文件(或从中导出)。这样,变化将是永久的,先生,我对bash是新手。我不知道怎么做。。。那么,你可以写一个bash脚本,将/My_Scripts/bash_Scripts复制到。bashrcIt似乎你已经安装了Kali linux。如果是故意的,那么在继续之前,您需要先学习bash和linux的基础知识。因此,我强烈建议您查看手册并亲自尝试。谢谢您的回复。。。请告诉我应该做哪些更改以自动执行脚本打开.bashrc文件并附加路径。Ex-export PATH=“$PATH:/home/New_pathname”保存文件并运行-bash.bashrcsr您可以编写一个bash脚本来执行此操作吗?您可以打开.bashrc文件吗