Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Search a multi-line shell command output and execute logic based on result Post 303042192 by yogi on Wednesday 18th of December 2019 02:20:07 PM
Old 12-18-2019
Search a multi-line shell command output and execute logic based on result

The following is a multi-line shell command example:


Code:
$cargo build
   Compiling prawn v0.1.0 (/Users/ag/rust/prawn)
error[E0433]: failed to resolve: could not find `setup_panix` in `human_panic`
  --> src/main.rs:14:22
   |
14 |         human_panic::setup_panix!();
   |                      ^^^^^^^^^^^ could not find `setup_panix` in `human_panic`

error[E0412]: cannot find type `DGConfig` in crate `prawn`
  --> src/main.rs:25:27
   |
25 |     let db_config: prawn::DGConfig = envy::from_env().unwrap_or_else(|err| {
   |                           ^^^^^^^^ help: a struct with a similar name exists: `DBConfig`

error: aborting due to 2 previous errors

What I would like to accomplish here is to use the above multi-lines returned by cargo build command. Search all multi-lines for error[] substrings and store the count in a variable so the result can be used to handle another case logic.


Ideally, I want to accomplish something along the following code block:


Code:
function cargo_watch_notify() {
  echo "Watching for .rs file changes..."

  count=0
  "$(echo cargo build | egrep -w 'error' | ls -c >>>$count)"
  if [ $count -ge 1 ]; then
    growlnotify --title "Error" --message "Compiler found $count errors!"
  else
    growlnotify --title "Success" --message "Cargo build compiled successfully!"
  fi
  exit 1;
}

I realize the above block is broken. This is just what I have to work with for the moment. The only difference in my example is that I need to search for error and brackets strings and not the error string by itself. i.e. error[E0412] the top cargo build command should return a count of 2
 

10 More Discussions You Might Find Interesting

1. Programming

how to execute multi command???

Hi every one I'm writing C program that do the following: will creat new sample command in unix using C let be the name is do.c, the do must execute more the one command for example do ls ps it will execute ls the ps also I should create a log file the track the command and exit status of... (4 Replies)
Discussion started by: aliG4
4 Replies

2. Shell Programming and Scripting

Use grep result to execute next command

Hi I am trying to run 2 servers using a script one after the other. I start the first one: run.sh -c servername >> jboss_log.txt & Then I have to wait until I see Started message in the log file before I launch the other server. I can't use sleep because I am not sure how long it'll... (5 Replies)
Discussion started by: iririr
5 Replies

3. Shell Programming and Scripting

Joining multi-line output to a single line in a group

Hi, My Oracle query is returing below o/p ---------------------------------------------------------- Ins trnas value a lkp1 x a lkp1 y b lkp1 a b lkp2 x b lkp2 y ... (7 Replies)
Discussion started by: gvk25
7 Replies

4. Shell Programming and Scripting

Multi-line filtering based on multi-line pattern in a file

I have a file with data records separated by multiple equals signs, as below. ========== RECORD 1 ========== RECORD 2 DATA LINE ========== RECORD 3 ========== RECORD 4 DATA LINE ========== RECORD 5 DATA LINE ========== I need to filter out all data from this file where the... (2 Replies)
Discussion started by: Finja
2 Replies

5. Shell Programming and Scripting

Different cmd to execute and based on some pattern parse it and then store result in xlx format

Hi I have a different requirement, I need to run some application on my device from a file app_name.txt one by one which is like this: /usr/apps/email /usr/apps/message /usr/apps/settings after each app while it is running I need to execute again one cmd like ps -ef |grep... (2 Replies)
Discussion started by: Sanjeev Roy
2 Replies

6. Shell Programming and Scripting

Output block of lines in a file based on grep result

Hi I would appreciate your help with this. I have a output file from a command. It is broken based on initial of the users. Exmaple of iitials MN & SS. Under each section there is information pertaining to the user however each section can have different number of lines. MY challenge is to ... (5 Replies)
Discussion started by: mnassiri
5 Replies

7. Shell Programming and Scripting

sed working on command line but file unchanged when execute with Shell script

I have a simple task to replace unix line feed end of line characters with carriage returns. When I run the following “change file in place” sed instruction from the command line all the Line feeds are successfully replaced with Carriage returns. sed -i 's/$/\r/' lf_file.txt But that same... (1 Reply)
Discussion started by: hawkman2k
1 Replies

8. Shell Programming and Scripting

How to execute a command on each line of output from another command?

Hello :) new to bash not to programming. I have an on-going need to change the owning group on sets of files and directories from the one they were created with or changed to on update to the one they need to have going forward. find {target_root} -group wrong_group gets me a newline... (4 Replies)
Discussion started by: naftali
4 Replies

9. Shell Programming and Scripting

Execute command and show result in web page

Hi everyone, I have two question 1- I want to execute command in shell and after execution result show in a web server. (kind of making UI ) e.g. in shell root ~: show list item1 item2 item(n)in web server in a page draw a table and show those items in itno | name... (1 Reply)
Discussion started by: indeed_1
1 Replies

10. UNIX for Beginners Questions & Answers

Merge multi-lines into one single line using shell script or Linux command

Hi, Can anyone help me for merge the following multi-line log which beginning with a " and line ending with ": into one line. *****Original Log***** 087;2008-12-06;084403;"mc;;SYHLR6AP1D\LNZW;AD-703;1;12475;SYHLR6AP1B;1.1.1.1;0000000062;HGPDI:MSISDN=12345678,APNID=1,EQOSID=365;... (3 Replies)
Discussion started by: rajeshlinux2010
3 Replies
build(1)                                                      General Commands Manual                                                     build(1)

NAME
build - build SuSE Linux RPMs in a chroot environment SYNOPSIS
build [--clean|--no-init] [--rpms path1:path2:...] [--arch arch1:arch2:...] [--root buildroot] [specfile|srcrpm] build --help build --verify DESCRIPTION
build is a tool to build SuSE Linux RPMs in a safe and clean way. build will install a minimal SuSE Linux as build system into some direc- tory and will chroot to this system to compile the package. This way you don't risk to corrupt your working system (due to a broken spec file for example), even if the package does not use BuildRoot. build searches the spec file for a BuildRequires: line; if such a line is found, all the specified rpms are installed. Otherwise a selec- tion of default packages are used. Note that build doesn't automatically resolve missing dependencies, so the specified rpms have to be sufficient for the build. If a spec file is specified on the command line, build will use this file and all other files in the directory for building the package. If a srcrpm is specified, build automatically unpacks it for the build. If neither is given, build will use all the specfiles in the current directory. OPTIONS
--clean remove the build system and reinitialize it from scratch. --no-init skip the build system initialization and start with build immediately. --list-state list rpms that would be used to create a fresh build root. Does not create the build root or perform a build. --rpms path1:path2:path3... Where build can find the SuSE Linux RPMs needed to create the build system. This option overrides the BUILD_RPMS environment vari- able. --arch arch1:arch2:arch3... What architectures to select from the RPMs. build automatically sets this to a sensible value for your host if you don't specify this option. --root buildroot Specifies where the build system is set up. Overrides the BUILD_ROOT enviroment variable. --useusedforbuild Tell build not to do dependency expansion, but to extract the list of packages to install from "# usedforbuild" lines or, if none are found, from all "BuildRequires" lines. This option is useful if you want to re-build a package from a srcrpm with exactly the same packages used for the srcrpm build. --norootforbuild --help Print a short help text. --verify verify the files in an existing build system. .spec FILE OPTIONS The build command interprets some special control comments in the specfile: # norootforbuild # needsrootforbuild build uses either user root or user abuild in the build system to do the build. For non-SUSE distros as well as since SUSE 10.2, the default build user is abuild. For 10.2 and before, the default build user is root. These two flags in the spec file allow to deviate from the defaults and force-set the build user to abuild and root (for # norootforbuild and # needsrootforbuild respec- tively. # needsbinariesforbuild provide the binary rpms that have been used to set up the build root in /.build.binaries within the build root. ENVIRONMENT
BUILD_ROOT The directory where build should install the chrooted build system. "/var/tmp/build-root" is used by default. BUILD_RPMS Where build can find the SuSE Linux RPMs. build needs them to create the build system. "/media/dvd/suse" is the default value which will do the trick if you have the SuSE Linux DVD mounted. BUILD_RPM_BUILD_STAGE The rpm build stage (-ba, -bb, ...). This is just passed through to rpm, check the rpm manpage for a complete list and descrip- tions. "-ba" is the default. You can use this to add more options to RPM. SEE ALSO
rpm(1), Maximum RPM: http://www.rpm.org/max-rpm/ cross distribution packaging: http://en.opensuse.org/Build_Service/cross_distribution_package_how_to SUSE packaging standards and guidelines: http://en.opensuse.org/Packaging (c) 1997-2008 SuSE Linux AG Nuernberg, Germany build(1)
All times are GMT -4. The time now is 09:14 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy