#!/bin/bash
for (( c=1; c<=${COUNT}; c++ ))
do
sed -n '/module '${MODULE}'${c} /,/endmodule/p' prescan.v > temp${c}.v
sed -i '0,/o_func_clk /s/o_func_clk/o_func_clk, DFT_ClkEnScanIn1 ,scan_clock_en , DFT_ClkgenScanEnable /' temp${c}.v
#sed -i '0,/i_UDR_DFT_free_running;/i_UDR_DFT_free_running;/i_UDR_DFT_free_running , DFT_ClkEnScanIn1 , DFT_ClkgenScanEnable ;/' temp${c}.v
sed -i 's/i_UDR_DFT_free_running;/i_UDR_DFT_free_running , DFT_ClkEnScanIn1 , DFT_ClkgenScanEnable ;/' temp${c}.v
sed -i '/\[0\:0\] i_func_clk_en/a output scan_clock_en ;' temp${c}.v
sed -i '/scan_clock_en_reg/,+1d' temp${c}.v
sed -i '/endmodule/i M8E35B_SDFF2X1 scan_clock_en_reg (.q ( scan_clock_en ) , .d (pre_scan_clock_en ) , .te ( DFT_ClkgenScanEnable ) , .ti ( DFT_ClkEnScanIn1 ) , .phi ( i_scan_clk ));' temp${c}.v
done
This script should generate multiple temp files temp1.v temp2.v temp3.v temp4.v
after being processed with sed scripts.
The problem is with the first line
sed is unable to do variable substitution.
I tried with double quotes also substitution is not happening and getting empty temp files.
The $c should be incremented and the $MODULE1 $MODUL2 should be read depending upon the environmental variable set and the pattern should be searched and temp file should be created.
Please let me how to tackle this issue
Last edited by Scrutinizer; 05-09-2014 at 07:11 AM..
Reason: additional code tags
i have two lines in my rc.local file that are
wget -O/<path>/<file>.zip url://domain.com
unzip -o /<path>/<file>.zip
the wget works fine, but the unzip won't work. when i copy/pase the unzip line to the prompt it works fine. i thought that maybe the unzip was running before the wget... (0 Replies)
Hi All,
I need to pass a variable to perl script from bash script, where in perl i am using if condition. Here is the cmd what i am using in perl
FROM_DATE="06/05/2008"
TO_DATE="07/05/2008"
"perl -ne ' print if ( $_ >="$FROM_DATE" && $_ <= "$TO_DATE" ) ' filename"
filename has... (10 Replies)
Is it possible with a bash variable to perform multiple substitution strings to one variable?
I have this variable:
echo $clock
TIMEZONE="US/Central"
What I would like to do with bash only it pull out just the "US" part of the variable.. which could be any number of countries.
this is... (6 Replies)
When script is running you only see when some of the commands are not successfull.
Is there a way to see which command are executed and to show the substitution of variables as every line is executed ? (3 Replies)
Hello,
can someone please help me to fix this script,
I have a 2 files, one file has hostname information and second file has console information of the hosts in each line, I have written a script which actually reads each line in hostname file and should grep in the console file and paste the... (8 Replies)
Hi
I need help with my coding , first time I'm working with bash .
What i must do is check if there is 3 .txt files if there is not 3 of them i must give an error code , if al three is there i must first arrange them in alphabetical order and then take the last word in al 3 of the .txt files... (1 Reply)
Hi I am trying to do the following in a script find a string and add in a block of text two lines above on the command line this works fine
#/usr/bin/cat /usr/local/etc/dhcpd.conf_subnet | /usr/xpg4/bin/sed -n -e '1h;1\!H;${;g;s/}.*#END of 10.42.33.0/#START of RANGE $dstart\:option... (3 Replies)
I have a script.
filecreatenew () {
touch /usr/src/$1_newfile.txt
var=$1
echo $var
touch /usr/src/$var_newfile_with_var.txt
}
filecreatenew myfile
Its creating file /usr/src/myfile_newfile.txt as the variable $1 is correctly used. When $ is... (2 Replies)
Hi, I am trying to do a bash script that convert a decimal number to a binary value, but it doesn't work...
To begin, I am just trying to convert a positive number to 8 bits binary.
read -p"Entrez un nombre entre -128 et 127 pour l'encoder en binaire: " number
binaryValues=(128 64 32 16 8 4 2... (8 Replies)
Discussion started by: Zedki
8 Replies
LEARN ABOUT FREEBSD
getenv
GETENV(3) BSD Library Functions Manual GETENV(3)NAME
getenv, putenv, setenv, unsetenv -- environment variable functions
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdlib.h>
char *
getenv(const char *name);
int
setenv(const char *name, const char *value, int overwrite);
int
putenv(char *string);
int
unsetenv(const char *name);
DESCRIPTION
These functions set, unset and fetch environment variables from the host environment list.
The getenv() function obtains the current value of the environment variable, name. The application should not modify the string pointed to
by the getenv() function.
The setenv() function inserts or resets the environment variable name in the current environment list. If the variable name does not exist
in the list, it is inserted with the given value. If the variable does exist, the argument overwrite is tested; if overwrite is zero, the
variable is not reset, otherwise it is reset to the given value.
The putenv() function takes an argument of the form ``name=value'' and puts it directly into the current environment, so altering the argu-
ment shall change the environment. If the variable name does not exist in the list, it is inserted with the given value. If the variable
name does exist, it is reset to the given value.
The unsetenv() function deletes all instances of the variable name pointed to by name from the list.
If corruption (e.g., a name without a value) is detected while making a copy of environ for internal usage, then setenv(), unsetenv() and
putenv() will output a warning to stderr about the issue, drop the corrupt entry and complete the task without error.
RETURN VALUES
The getenv() function returns the value of the environment variable as a NUL-terminated string. If the variable name is not in the current
environment, NULL is returned.
The setenv(), putenv(), and unsetenv() functions return the value 0 if successful; otherwise the value -1 is returned and the global variable
errno is set to indicate the error.
ERRORS
[EINVAL] The function getenv(), setenv() or unsetenv() failed because the name is a NULL pointer, points to an empty string, or
points to a string containing an ``='' character.
The function putenv() failed because string is a NULL pointer, string is without an ``='' character or ``='' is the first
character in string. This does not follow the POSIX specification.
[ENOMEM] The function setenv(), unsetenv() or putenv() failed because they were unable to allocate memory for the environment.
SEE ALSO csh(1), sh(1), execve(2), environ(7)STANDARDS
The getenv() function conforms to ISO/IEC 9899:1990 (``ISO C90''). The setenv(), putenv() and unsetenv() functions conforms to IEEE Std
1003.1-2001 (``POSIX.1'').
HISTORY
The functions setenv() and unsetenv() appeared in Version 7 AT&T UNIX. The putenv() function appeared in 4.3BSD-Reno.
Until FreeBSD 7.0, putenv() would make a copy of string and insert it into the environment using setenv(). This was changed to use string as
the memory location of the ``name=value'' pair to follow the POSIX specification.
BUGS
Successive calls to setenv() that assign a larger-sized value than any previous value to the same name will result in a memory leak. The
FreeBSD semantics for this function (namely, that the contents of value are copied and that old values remain accessible indefinitely) make
this bug unavoidable. Future versions may eliminate one or both of these semantic guarantees in order to fix the bug.
BSD June 20, 2007 BSD