Hacker News new | ask | show | jobs
by chasil 1355 days ago
Bash will not expand aliases within a shell script unless it is in POSIX mode.

When not in POSIX mode, aliases are only expanded for interactive use.

  $ echo '#!/bin/sh \n alias p=printf \n p %s\\\\n "hello world!"' > ok.sh
  $ chmod 755 ok.sh
  $ ./ok.sh
  hello world!

  $ echo '#!/bin/bash \n alias p=printf \n p %s\\\\n "hello world!"' > nope.sh
  $ chmod 755 nope.sh
  $ ./nope.sh 
  ./nope.sh: line 3: p: command not found