Hacker News new | past | comments | ask | show | jobs | submit login

Once you learn the zen of shell script, like any programming language, those problems pretty much go away. Shell script is a tiny language packed with features and can be learned through constant use in a week, but like any language, it takes time to master.

It's incredibly powerful for interactive use and data manipulation combined with the standard Unix tools and sometimes pulling out perl or python is more work than just banging out a pipeline on the command line.

Quoting does take some time, but just remember that when in double to quote your variable expansions with double quotes. There's more too it, but that's a good rule to start with.




Maybe I lack the proper zen, but I haven't found this to be true at all.

Here's a good bash FAQ. It contains questions like "how do I use associative arrays", with answers like "this is a complex question."

I don't even have to ask in any half-decent scripting language.

http://mywiki.wooledge.org/BashFAQ/


I reccommend ksh over bash. That's all I use these days. It was sh done right, although it does have a bit of history to it for compatibility.

To use associative arrays in ksh:

  typeset -A table
  column="name"
  table[$column]="value"
  echo ${table[$column]}
ksh is much more decent than bash, although I reccommend using in an emacs M-x shell buffer for better command line editing.

Edit: forgot to dereference column when setting value in table.


For reference, to use associative arrays in Bash:

  declare -A table
  column="name"
  table[$column]="value"
Included in recent versions of bash :)


I say typeset, you say declare, let's call the whole thing off! :)


Maybe you should do some lessons on this on any of the e-learning sites? I bet a lot of people would pay $25 or whatever for that.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: