Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.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
Linux bash can';当从另一个script2.sh调用时,找不到。/script1.sh_Linux_Bash_Shell - Fatal编程技术网

Linux bash can';当从另一个script2.sh调用时,找不到。/script1.sh

Linux bash can';当从另一个script2.sh调用时,找不到。/script1.sh,linux,bash,shell,Linux,Bash,Shell,当从另一个script2.sh调用时,我有一个问题“/script1.sh未找到”,它实际上绑定到一个键盘快捷键(control+e)。 当我按下control+e时,script2.sh会立即打开一个新终端并开始执行其任务,但当它必须调用script1.sh时,会显示此错误,即:sh:1:./script2.sh:未找到 当我在终端中手动运行它时,它可以正常工作,终端应该是当前的工作目录,即HOME,但当从快捷方式(即control+e)启动时,它不能工作,它执行一半的任务 问题是这些脚本将不

当从另一个script2.sh调用时,我有一个问题“/script1.sh未找到”,它实际上绑定到一个键盘快捷键(control+e)。

当我按下control+e时,script2.sh会立即打开一个新终端并开始执行其任务,但当它必须调用script1.sh时,会显示此错误,即:
sh:1:./script2.sh:未找到

当我在终端中手动运行它时,它可以正常工作,终端应该是当前的工作目录,即HOME,但当从快捷方式(即control+e)启动时,它不能工作,它执行一半的任务

问题是这些脚本将不同的路径设置为
“/exampleProgam”
“/exampleScript”
并且没有像
“/home/user/program”或
“/home/user/script”这样的完整路径

所以我不想扔掉大约70个文件,手动将路径逐个更改为完整路径,如“/home/user/folder”。 为了获得home dir路径,我还必须编写额外的代码

所有这些脚本和C程序都放在一个文件夹中,即主目录中的folder1:
/home/user/folder1/script2.sh
,而script1.sh放在

/home/user/script1.sh


默认情况下,终端外壳在哪里打开。??因为当我按下control+e,程序在shell中启动时,它不会显示任何路径等,只是开始执行。

我强烈建议您继续并实际修复路径

或者,您可以添加代码,并寻求有关如何编辑/修改这些行的帮助(可能使用sed,如注释中所述)/


但是,由于您尚未显示代码,如果现在真的很难更正,那么您可以尝试添加
cd/home/user/script/
作为
script1.sh
文件的第一行。这将更改
当前目录
以获取更多命令。

如果不想正确执行,请不要抱怨它不工作。无论如何,您都必须触摸它,因为./也使它成为一个路径,即当前工作目录。如果您只是使用名称并将所有目录添加到可能有效的路径中(将打开一罐蠕虫,这将是一个丑陋的混乱)。只需编辑您的脚本,可能使用sed…@tink我确实希望正确地执行它,我为整个项目选择了./current working目录,它在文件系统中的任何地方都运行,除了现在,当我试图将整个程序绑定到一个键盘快捷键上。真正的问题是,我不知道终端外壳在脚本启动和调用时在哪里和哪个目录下启动。??因为它从一个未知的目录开始,我的程序文件/脚本既不放在桌面上,也不放在主目录中。看,这直接说明了你实际上要做的事情……事实上,我认为有一种观点认为这可能是重复的。或者,至少,其他问题已经被证明是相同的重复问题。@charlesduff不是重复问题,但我可能写得不好,现在是凌晨3:25,我的头和整个身体都很痛……无法清楚地问出来,因此也得到了反对票。真正的问题是,我不知道终端外壳在脚本启动和调用时在哪里和哪个目录启动。??因为它开始于某个未知目录,其中我的程序文件/脚本既不放在桌面上,也不放在主目录中…………整个程序在路径上完全没有问题,无论是在主目录还是在桌面目录或其他地方运行,正如我所说,程序的路径指定为“/script.sh”当它必须调用位于同一目录中的脚本时……当同一程序被自动打开新终端外壳的键盘快捷键调用时,问题就出现了,我不知道这个外壳在哪个目录下运行。???我没有发布任何代码,因为它不是关于代码,更多的是关于将应用程序绑定到终端中运行的键盘键。那么,只需在代码中添加
echo$PWD
,然后查看。。。我试过了,发现那是我的家