Making Scripts Executable With a Hashbang (Shebang)
Concepts
Overview
Making Deno scripts executable can be useful if you want to make, for example, small tools.
Note: Hashbangs do not work on Windows.
Example
In this program we give the context permission to access the environment variables and print the Deno installation path.
#!/usr/bin/env -S deno run --allow-env
/**
* hashbang.ts
*/
const path = Deno.env.get("DENO_INSTALL");
console.log("Deno Install Path:", path);
Permissions
You may require to give the script execution permissions.
Linux
chmod +x hashbang.ts
Execute
Start the script by calling it like any other command:
./hashbang.ts
Details
A hashbang has to be placed in the first line.
-S
splits the command into arguments.End the file name in
.ts
for the script to be interpreted as TypeScript.Future plans include supporting the command-line option
--ext <type>
, relieving this naming restriction. See denoland/deno#5088.
Using hashbang in files with no extension
You may wish to not use an extension for your script's filename. In this case,
you can supply one by using the --ext
flag:
$ cat my_script
#!/usr/bin/env -S deno run --allow-env --ext=js
console.log("Hello!");
$ ./my_script
Hello!