# Getting Unwanted Quotes in System Calls

**URL:** https://discourse.julialang.org/t/getting-unwanted-quotes-in-system-calls/2451
**Category:** General Usage
**Tags:** shell
**Created:** [March 4, 2017, 11:23pm UTC](https://discourse.julialang.org/t/getting-unwanted-quotes-in-system-calls/2451 "2017-03-04T23:23:39Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![djsegal](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/djsegal/32/13752_2.png) [@djsegal](https://discourse.julialang.org/u/djsegal)
#### Post date: [March 4, 2017, 11:23pm UTC](https://discourse.julialang.org/t/getting-unwanted-quotes-in-system-calls/2451/1 "2017-03-04T23:23:39Z")

</div>

```julia
file_name = "$(Pkg.dir())/blah/blah.jl"

file_alias = "julia -L $file_name -e 'main()' --"

println(`alias whatev=$file_alias; meow hello`)

```

prints out:

```julia
`alias "whatev=julia -L /Users/dan/.julia/v0.5/blah/blah.jl -e 'main()' --;" meow hello`

```

* * *

Why?

Those quotes around `"whatev= ... --;"` shouldn’t exist.

Is this a compiler error? Do backticks not like equal signs?

// I know the alias won’t work because it doesn’t have quotes. I just removed them, so that didn’t become the topic of discussion

---

<div class="post-metadata">

### Author: ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)
#### Post date: [March 4, 2017, 11:52pm UTC](https://discourse.julialang.org/t/getting-unwanted-quotes-in-system-calls/2451/2 "2017-03-04T23:52:34Z")

</div>

The command interpolation syntax is special. See [http://docs.julialang.org/en/stable/manual/running-external-programs/#interpolation](http://docs.julialang.org/en/stable/manual/running-external-programs/#interpolation) for more details, but in short, a good mental model is that it is geared around safely constructing an array of arguments to pass to an `exec`-like function. Each white-space delimiter represents a new argument. A string that gets spliced in is taken as one complete token and combined with any adjacent text to create a single argument. This is great for ensuring that you don’t need to worry about escaping quote characters yourself. In fact the ones it prints out are entirely for show!

This also means that it’s _not_ running in a shell. There aren’t any shell built-in syntaxes like `;` or `>`… although there has been interest in supporting more things along these lines. So those symbols are now deprecated in 0.6 so that we can start giving them shell-like meanings in the future.
