pat*_*ick 5 macos bash shell directory-structure
首先,这是我第一次使用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
Run Code Online (Sandbox Code Playgroud)
显然有一些错误 - 变量不会被传递,并且不会创建根文件夹.我还读到我应该使用"对话框"来询问输入,但我无法写出有效的东西.
非常感谢您的帮助.谢谢.
Gor*_*son 10
该echo
和read
命令通过文本界面,如脚本运行的终端窗口里工作.如果你运行在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
Run Code Online (Sandbox Code Playgroud)
(注意:我更喜欢在shell中使用小写变量名,以避免与特殊变量(如PATH等)发生冲突...)