Jay8ee
Jay8ee

Reputation: 101

Cygwin Command Substitution not Working

I am trying to trouble shoot a problem I am seeing when running bash commands in Cygwin.

I am trying to assign the CLang version from a text file to a variable. If I run this in Cygwin:

$ (sed -n 1p "$CLANGC2_VERSION_FILE" | sed 's/\s//g')

I get this output (which is exactly what I want):

14.10.25903

Now, if I try and assign this to a variable it doesn't work. Here is what I am trying:

$ CLANGC2_VERSION=$(sed -n 1p "$CLANGC2_VERSION_FILE" | sed 's/\s//g')

but when I inspect or print the variable, it is empty.

What am I doing wrong?

Upvotes: 2

Views: 720

Answers (2)

Jay8ee
Jay8ee

Reputation: 101

Turns out that there is a known 'Big List of Dodgy Apps' (BLODA) which can interfere with Cygwin and bash.

The discussion I found is here: https://cygwin.com/ml/cygwin/2017-07/msg00197.html The BLODA list is here: https://cygwin.com/faq/faq.html#faq.using.bloda

Turns out my AntiVirus is on the list.

I've removed the AV and now the commands work. There must be some low-level stuff going with the AV that causes it to fail.

Upvotes: 1

Patrick Kelly
Patrick Kelly

Reputation: 1381

You can use backticks to get the desired results.

CLANGC2_VERSION=`(sed -n 1p "$CLANGC2_VERSION_FILE" | sed 's/\s//g')`

Upvotes: 0

Related Questions