用法

用法

我需要创建一个 bash 脚本,其中用户在终端命令行传递单个参数(不使用“读取”输入选项),创建具有该名称的目录,或者以其他方式通知用户此类目录存在。大多数脚本看起来都非常简单,除了输入被传递到 mkdir 而没有读取输入选项。

我尝试过但失败的事情:

1) 提示用户在终端中输入目录的名称,然后再次运行脚本并使用历史选项作为输入。

2)尝试将用户输入写入文件,却发现它需要读取。

任何提示或帮助将不胜感激。先感谢您。

答案1

用户在终端命令行传递单个参数(不使用“读取”输入选项),创建具有该名称的目录,或者以其他方式通知用户该目录存在...

听起来你需要的是普通的位置命令行参数:

脚本源代码mkdir1

#!/bin/sh
mkdir "$1"

用法

./mkdir1 foo
./mkdir1 foo
mkdir: cannot create directory ‘foo’: File exists

foo是我第一次运行时创建的mkdir1。第二次,它通知我它已经存在。

这似乎符合您的规格,并且不需要内置。

解释

$1是第一个位置参数。$2将是第二个,等等。

对于比这个问题需要的更复杂的例子,您可以从许多来源找到有关位置参数的更多信息,例如bash 黑客维基,总结如下:

$0           is usually the name of the shell
$FUNCNAME    the function name if inside a function, or $0
$1 - $9      the argument list elements from 1 to 9
${10} - ${N} the argument list elements beyond 9

$*  all positional parameters except $0
$@  all positional parameters except $0
$#  the number of arguments, not counting $0

相关内容