【发布时间】:2017-12-27 22:38:40
【问题描述】:
阅读 What's the difference between shell builtin and shell keyword? 我想知道我可以在 shell 中给东西起多少别名。
例如,而不是写作
string_with_spaces='some spaces here'
if [ -n $string_with_spaces ]; then
echo "The string is non-empty"
fi
挑战是写出类似
的东西signvico='iuj spacetoj tie ĉi'
se ja nevakua $signvico plie vera ope nu tiam
echo "la signvico ne estas vakua!"
eme
所以我尝试了这个
alias se='if'
alias tiam='then'
alias eme='fi'
alias ja='['
alias ope=']'
alias nevakua='-n'
alias vera='true'
alias plie='-a'
alias nu=';'
alias eĥu='echo'
但这行不通。事实上,使用-a、-n、; 和] 别名会使脚本失败。但是,将se ja -n $signvico -a vera ] ; tiam 与上述代码的其余部分一起使用将起作用。我想这都是由于在解释器管道的不同级别解析/替换了相应的代码。
但是有没有办法确实使上面的整个代码符合预期?
【问题讨论】:
标签: zsh-alias