根据我之前发布的建议,我写了一个bash脚本
#!/bin/bash
mycd()
{cd /home/milenko/data;}
mycd
./p2
p2是可执行的
但是
milenko@milenko-HP-Compaq-6830s:~$ bash a1.sh
a1.sh: line 4: syntax error near unexpected token `{cd'
a1.sh: line 4: `{cd /home/milenko/data;}'
为什么?
答案 0 :(得分:1)
Shell语法(不仅仅是bash,而是在POSIX sh中)是围绕称为" words"的单元构建的。 {
在解析为自己的单词时只具有其语法意义 - 这意味着它需要被空格包围(包含换行符的类别)。
写这个的传统方式是:
mycd() {
cd /home/milenko/data
}
...或者,如果您想最小化换行符:
mycd() { cd /home/milenko/data; }
你可以删除最终;
和结束}
之间的空格(因为;
,如果在引号外找到并且没有转义,则结束任何单词在它之前),但这将被视为丑陋:
mycd() { cd /home/milenko/data;} # leaving out the last space is legal, but please don't.