我的第一个bash shell函数没有';行不通
我尝试了3个internet示例来编写bashshell函数,并通过我的xterm终端调用它,但没有成功 1-my函数保存在“示例”文件中,该文件为不可执行模式 2-在这个示例文件中,我写道:我的第一个bash shell函数没有';行不通,bash,Bash,我尝试了3个internet示例来编写bashshell函数,并通过我的xterm终端调用它,但没有成功 1-my函数保存在“示例”文件中,该文件为不可执行模式 2-在这个示例文件中,我写道: #!/bin/bash function quit { exit } function hello { echo Hello! } 3-在xterm终端
#!/bin/bash
function quit {
exit
}
function hello {
echo Hello!
}
3-在xterm终端中,在该文件所在的文件夹中,我通过以下方式调用了这两个函数:
$./quit $./hello
通过这种方式:
$quit $hello
但是如果我将下面的函数更改为脚本(没有函数词)并调用该文件,它就会工作
你知道怎么回事吗
谢谢一旦编写了函数,它们只在脚本文件本身中可见。为了使它们在外部可见,您需要告诉脚本将函数导出到环境中 尝试在函数定义之后添加
export-f quit
和export-f hello
让我们澄清一下与/
和$
运算符的混淆
要调用当前目录中的脚本时,将使用第一个运算符/
。例如,如果您在某个文件script.sh
中定义了脚本,则可以使用/script.sh
调用它(确保您具有执行权限-可以使用chmod+x script.sh
添加它们)
第二个运算符$
用于查看环境变量。这些是在bashshell中默认定义的变量,或者是您定义并导出到shell中的变量。尝试在shell中输入以下内容
pi=3.14
echo $pi
3.14
在这里,
$
前缀允许您访问您创建的变量。编写函数后,它们仅在脚本文件本身中可见。为了使它们在外部可见,您需要告诉脚本将函数导出到环境中
尝试在函数定义之后添加export-f quit
和export-f hello
让我们澄清一下与/
和$
运算符的混淆
要调用当前目录中的脚本时,将使用第一个运算符/
。例如,如果您在某个文件script.sh
中定义了脚本,则可以使用/script.sh
调用它(确保您具有执行权限-可以使用chmod+x script.sh
添加它们)
第二个运算符$
用于查看环境变量。这些是在bashshell中默认定义的变量,或者是您定义并导出到shell中的变量。尝试在shell中输入以下内容
pi=3.14
echo $pi
3.14
在这里,
$
前缀允许您访问您创建的变量。您需要为脚本提供源代码,以便将函数定义加载到当前shell环境:
# source script
. example
# call function
hello
# call function
quit
要将函数定义加载到当前shell环境,您需要为脚本提供源代码:
# source script
. example
# call function
hello
# call function
quit
您需要使函数定义可供外部shell使用。为此,您需要获取示例文件的源代码:
. example
quit
hello
您还可以执行
源示例
您需要使函数定义可供外部shell使用。为此,您需要获取示例文件的源代码:
. example
quit
hello
您还可以执行
源代码示例
/quit或./hello意味着您有名为quit和hello的文件,并且希望执行它们。
$quit和$hello表示quit和hello是预定义的命令(在$PATH文件夹中的可执行文件,例如/usr/bin)
在shell文件中定义函数时,也应该在该文件中使用它 /quit或./hello表示您有名为quit和hello的文件,并且希望执行它们。 $quit和$hello表示quit和hello是预定义的命令(在$PATH文件夹中的可执行文件,例如/usr/bin) 在shell文件中定义函数时,也应该在该文件中使用它