我有一个使用sh shell的linux脚本。我在使用“source”命令的行中出现错误。基本上,它似乎“源”不包括在我的SH壳。如果我输入sh并输入源码,我会得到:在sh shell中找不到source命令
sh: 1: source: not found
我应该明确安装“source”吗?我有sh shell的错误版本吗?
我有一个使用sh shell的linux脚本。我在使用“source”命令的行中出现错误。基本上,它似乎“源”不包括在我的SH壳。如果我输入sh并输入源码,我会得到:在sh shell中找不到source命令
sh: 1: source: not found
我应该明确安装“source”吗?我有sh shell的错误版本吗?
/bin/sh
通常是一些其他的shell试图仿效shell。许多发行版使用/bin/bash
代替sh
,它支持source
。但在Ubuntu上,使用/bin/dash
,它不支持source
。如果您不能编辑脚本,请尝试更改运行它的外壳。
source
命令内置到一些shell。如果你有一个脚本,它应规定在第一行用什么壳,如:
#!/bin/bash
好吧,它说#!/ bin/sh,在另一个linux上,如果我手动输入sh并询问它告诉我的“源”:source:shell内置命令 – Milad
哦,这就是这行代码。我一直在想。非常感谢! – commonSenseCode
的Bourne shell(SH)使用PATH中source <file>
定位。如果您尝试提供的文件不在您的路径中,则会显示错误“找不到文件”。
尝试:
source ./<filename>
这篇文章说'sh:1:source:not found' not'file not found' –
我在Ubuntu上一个GNU Makefile中发现,(这里的/ bin/sh的 - > bash)的
我需要使用。命令,以及指定用./前缀目标脚本(见下面的例子)
源没有在这种情况下,不知道为什么,因为它应该调用/斌/ bash的工作..
我SHELL环境变量也设置为/ bin/bash
test:
$(shell . ./my_script)
注意此示例不包括制表符;必须格式化堆栈交换。
此问题是因为詹金斯执行壳牌通过其/ bin/sh的运行脚本
因此,/ bin/sh的不知道“源”
你只需要在添加下面的一行您的顶部詹金斯执行shell
#!/bin/bash
这可能会帮助你,我得到这个错误,因为我试图重新加载我.profile
与命令. .profile
,它有一个语法错误
source
内建是一个bashism。改写为.
。
例如
. $FILE
# OR you may need to use a relative path (such as in an `npm` script):
. ./$FILE
源是内置命令,以便执行源命令bash中,你可以以root身份登录。
sudo -s source ./filename.sh
人们完全有理由认为,它支持一个壳'source'是“错版”。 –
此外,错误消息“source:not found”意味着'source'命令被正确评估,但它应该读取的文件不存在。 –