我需要创建一个 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