gpt4 book ai didi

macos - 如何提示用户输入名称以创建文件夹(bash | shell 脚本)?

转载 作者:行者123 更新时间:2023-11-29 09:01:41 25 4
gpt4 key购买 nike

首先,这是我第一次尝试编写 shell 脚本。我只有 HTML 和 CSS 方面的经验:]

我想做的是设置一个简单的文件夹结构在对话框中提示用户设置名称 为根文件夹。我将通过 OS X 服务或 Keyboard Maestro 热键触发此 shell 脚本。

这是我到目前为止想出的:

#!/bin/sh

echo -n "Enter the project name:"
read -e NAME

mkdir -p ~/Desktop/$NAME
mkdir -p ~/Desktop/$NAME/subfolder1
mkdir -p ~/Desktop/$NAME/subfolder2

显然有一些错误 - 变量不会被传递并且根文件夹不会被创建。我还读到我应该使用“对话”来请求输入,但我无法写出有用的东西。

非常感谢您的帮助。谢谢。

最佳答案

echoread 命令都通过文本界面工作,例如运行脚本的终端窗口。如果您在 OS X 服务中运行脚本,没有类似终端的界面,所以这两个命令都没有任何用处。 (我不知道 Keyboard Maestro,但我认为它是相似的。)在这种情况下进行交互的最简单方法通常是通过 osascript 命令使用 AppleScript:

name="$(osascript -e 'Tell application "System Events" to display dialog "Enter the project name:" default answer ""' -e 'text returned of result' 2>/dev/null)"
if [ $? -ne 0 ]; then
# The user pressed Cancel
exit 1 # exit with an error status
elif [ -z "$name" ]; then
# The user left the project name blank
osascript -e 'Tell application "System Events" to display alert "You must enter a project name; cancelling..." as warning'
exit 1 # exit with an error status
fi

mkdir -p ~/Desktop/$name
mkdir -p ~/Desktop/$name/subfolder1
mkdir -p ~/Desktop/$name/subfolder2

(注意:我更喜欢在 shell 中使用小写变量名,以避免与 PATH 等特殊变量可能发生冲突...)

关于macos - 如何提示用户输入名称以创建文件夹(bash | shell 脚本)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9180476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com