Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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 Shell函数,使用一个参数执行操作_Bash_Shell_Unix - Fatal编程技术网

Bash Shell函数,使用一个参数执行操作

Bash Shell函数,使用一个参数执行操作,bash,shell,unix,Bash,Shell,Unix,我试图做一些简单的事情,比如基于给定参数的mkdir #!/bin/bash make_picNum() { arg1 = $1 echo "Making picture folder $arg1..." echo "mkdir picNum_$arg1" echo "Created album folder" } 我假设我有一些基本的语法缺陷。 以任何给定的数字作为参数运行此函数的当前输出/操作是nada。您的脚本定义了一个名为make_picNum的函数,

我试图做一些简单的事情,比如基于给定参数的mkdir

#!/bin/bash

make_picNum() {
    arg1 = $1
    echo "Making picture folder $arg1..."
    echo "mkdir picNum_$arg1"
    echo "Created album folder"
}
我假设我有一些基本的语法缺陷。
以任何给定的数字作为参数运行此函数的当前输出/操作是nada。

您的脚本定义了一个名为
make_picNum
的函数,但它从未调用该函数。 尝试在末尾添加以下内容:

make_picNum "$1"
此外,还需要删除
=
周围的空格


我在a.sh中创建这个,然后是chmod+x file.sh和./file.sh args

如果是这样的话,你就不需要在脚本中使用这个函数,也就是说,你可以只使用这个函数

#!/bin/bash

echo "Making picture folder $1..."
mkdir "picNum_$1"
echo "Created album folder"

您似乎声明了一个函数,但实际上没有调用它。我在.sh中创建了这个函数,然后chmod+x file.sh和./file.sh args
arg1=$1
是非法的,它应该写为
arg1=“$1”
,注意变量名和等号之间缺少空格。还应始终引用变量展开式。如果您所做的只是在这个文件中定义函数,那么您不应该执行它,而是应该为它提供源代码:
source file.sh
;在此之后,您可以引用make_picNum函数。Done、Done以及make_picNum()之前添加的关键字函数。我的另一个明显错误是重复我想要的命令,哈。不要使用
函数
关键字。这是一种不必要的、非标准的巴什主义。