我对 Mac OSX 中的终端越来越熟悉,我想我会涉足 bash 脚本。不想在我坐下之前爬行,我想写一个非常简单的“你好,世界!” 脚本所以我这样做了:
~/Desktop touch hello.sh
~/Desktop vim hello.sh
Run Code Online (Sandbox Code Playgroud)
然后我将它添加到 hello.sh
#!/bin/bash
echo "Hello, world!"
Run Code Online (Sandbox Code Playgroud)
然后我这样做了:
~/Desktop chmod -x hello.sh
~/Desktop hello
Run Code Online (Sandbox Code Playgroud)
此时什么都没有发生。
我从某个地方下载了一个同样简单的 bash 脚本:
#!/bin/bash
echo "The current date and time."
date
Run Code Online (Sandbox Code Playgroud)
当我这样做的时候
~/Desktop date
Run Code Online (Sandbox Code Playgroud)
它做了它应该做的。
然后我用 ls -l 检查了文件权限,我得到了这个:
-rw-r--r-- 1 Mike staff 33 5 Sep 21:13 hello.sh
-rw-r--r--@ 1 Mike staff 50 5 Sep 21:00 date.sh
Run Code Online (Sandbox Code Playgroud)
很明显@ 正在发挥作用,或者我是这么认为的。我没有使用 vim,而是在 TextEdit 中创建了相同的文件,在经历了与之前相同的动作之后,我最终遇到了相同的情况,即我的脚本除了现在权限在它们末尾显示一个 @ 之外什么也没做。
所以我的问题是为什么这不起作用,我做错了什么?权限末尾的@ 是什么?