Search Results

Search found 7607 results on 305 pages for 'bash profile'.

Page 44/305 | < Previous Page | 40 41 42 43 44 45 46 47 48 49 50 51  | Next Page >

  • Calling linux utilities with options from within a Bash script.

    - by Kyle
    This is my first Bash script so forgive me if this question is trivial. I need to count the number of files within a specified directory $HOME/.junk. I thought this would be simple and assumed the following would work: numfiles= find $HOME/.junk -type f | wc -l echo "There are $numfiles files in the .junk directory." Typing find $HOME/.junk -type f | wc -l at the command line works exactly how I expected it to, simply returning the number of files. Why is this not working when it is entered within my script? Am I missing some special notation when it comes to passing options to the utilities? Thank you very much for your time and help.

    Read the article

  • How do I use a variable argument number in a bash script?

    - by Corbin Tarrant
    #!/bin/bash # Script to output the total size of requested filetype recursively # Error out if no file types were provided if [ $# -lt 1 ] then echo "Syntax Error, Please provide at least one type, ex: sizeofTypes {filetype1} {filetype2}" exit 0 fi #set first filetype types="-name *."$1 #loop through additional filetypes and append num=1 while [ $num -lt $# ] do (( num++ )) types=$types' -o -name *.'$$num done echo "TYPES="$types find . -name '*.'$1 | xargs du -ch *.$1 | grep total The problem I'm having is right here: #loop through additional filetypes and append num=1 while [ $num -lt $# ] do (( num++ )) types=$types' -o -name *.'>>$$num<< done I simply want to iterate over all the arguments not including the first one, should be easy enough, but I'm having a difficult time figuring out how to make this work

    Read the article

  • Why does sh/bash set command line parameter values when trying to set environment variable?

    - by Touko
    A question on basics : While tuning environment variables for a program launched from a script, I ended up with somewhat strange behaviour with sh (which seems to be actually linked to bash) : variable setting seems to mess up with command-line parameters. Could somebody explain why does this happen? A simple script: #! /bin/sh # Messes with $1 ?? set ANT_OPTS=-Xmx512M export ANT_OPTS # Works # export ANT_OPTS=-Xmx512M echo "0 = $0" echo "1 = $1" When I run this with the upper alternative (set + export), the result is as following: $ ./test.sh foo 0 = ./test.sh 1 = ANT_OPTS=-Xmx512M But with lower alternative (export straight), the result is as I supposed: $ ./test.sh foo 0 = ./test.sh 1 = foo There is surely logical explanation, I just haven't figured it out yet. Somebody who does have idea? br, Touko

    Read the article

  • How do I redirect stdin/stdout when I have a sequence of commands in Bash?

    - by Tom
    I've currently got a Bash command being executed (via Python's subprocess::Popen) which is reading from stdin, doing something and outputing to stdout. Something along the lines of: pid = subprocess.Popen( ["-c", "cmd1 | cmd2"], stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell =True ) output_data = pid.communicate( "input data\n" ) Now, what I want to do is to change that to execute another command in that same subshell that will alter the state before the next commands execute, so my shell command line will now (conceptually) be: cmd0; cmd1 | cmd2 Is there any way to have the input sent to cmd1 instead of cmd0 in this scenario? I'm assuming the output will include cmd0's output (which will be empty) followed by cmd2's output. cmd0 shouldn't actually read anything from stdin, does that make a difference in this situation? I know this is probably just a dumb way of doing this, I'm trying to patch in cmd0 without altering the other code too significantly. That said, I'm open to suggestions if there's a much cleaner way to approach this.

    Read the article

  • How do I set a variable inside a bash for loop?

    - by Isaac Moore
    I need to set a variable inside of a bash for loop, which for some reason, is not working for me. Here is an excerpt of my script: function unlockBoxAll { appdir=$(grep -i "CutTheRope.app" /tmp/App_list.tmp) for lvl in {0..24} key="UNLOCKED_$box_$lvl" plutil -key "$key" -value "1" "$appdir/../Library/Preferences/com.chillingo.cuttherope.plist" 2>&1> /dev/null successCheck=$(plutil -key "$key" "$appdir/../Library/Preferences/com.chillingo.cuttherope.plist") if [ "$successCheck" -eq "1" ]; then echo "Success! " else echo "Failed: Key is $successCheck " fi done } As you can see, I try to write to a variable inside the loop with: key="UNLOCKED_$box_$lvl" But when I do that, I get this: /usr/bin/cutTheRope.sh: line 23: syntax error near unexpected token `key="UNLOCKED_$box_$lvl"' /usr/bin/cutTheRope.sh: line 23: `key="UNLOCKED_$box_$lvl"' What am I not doing right? Is there another way to do this? Please help, thanks.

    Read the article

  • How can the last command's wall time be put in the Bash prompt?

    - by Mr Fooz
    Is there a way to embed the last command's elapsed wall time in a Bash prompt? I'm hoping for something that would look like this: [last: 0s][/my/dir]$ sleep 10 [last: 10s][/my/dir]$ Background I often run long data-crunching jobs and it's useful to know how long they've taken so I can estimate how long it will take for future jobs. For very regular tasks, I go ahead and record this information rigorously using appropriate logging techniques. For less-formal tasks, I'll just prepend the command with time. It would be nice to automatically "time" every single interactive command and have the timing information printed in a few characters rather than 3 lines.

    Read the article

  • The best way to ensure only 1 copy of bash script is running?

    - by depesz
    What is the simplest/best way to ensure only 1 copy of given script is running - assuming it's bash on linux? At the moment I'm doing: ps -C script.name.sh > /dev/null 2>&1 || ./script.name.sh but it has several issues: it puts the check outside of script it doesn't let me run the same script from separate accounts - which I would like sometimes. -C checks only first 14 characters of process name Of course I can write my own pidfile handling, but I sense that there should be some simple way to do it.

    Read the article

  • Why does this bash command take up all space on device?

    - by chelmertz
    Hey! I'm a little new on searching via bash, so feel free to give me suggestions on the methods to use instead of this, which I'll never use again :) I'm searching for occurances of a string, recursively in a directory, with ~50 not-that-large php-files in it; some in current directory, some in directories beneath current dir, three levels of directories down at most. The method I'm using is: find . | xargs grep "module" > module.txt When in simple (one level) directories, this works fine, but in this case, the file became 4 GB large until it filled up all space on the partition :) It wasn't even done yet.. Would someone educate me so I won't embarass myself again?

    Read the article

  • BASH Expression to replace beginning and ending of a string in one operation?

    - by swestrup
    Here's a simple problem that's been bugging me for some time. I often find I have a number of input files in some directory, and I want to construct output file names by replacing beginning and ending portions. For example, given this: source/foo.c source/bar.c source/foo_bar.c I often end up writing BASH expressions like: for f in source/*.c; do a="obj/${f##*/}" b="${a%.*}.obj" process "$f" "$b" done to generate the commands process "source/foo.c" "obj/foo.obj" process "source/bar.c "obj/bar.obj" process "source/foo_bar.c "obj/foo_bar.obj" The above works, but its a lot wordier than I like, and I would prefer to avoid the temporary variables. Ideally there would be some command that could replace the beginning and ends of a string in one shot, so that I could just write something like: for f in source/*.c; do process "$f" "obj/${f##*/%.*}.obj"; done Of course, the above doesn't work. Does anyone know something that will? I'm just trying to save myself some typing here.

    Read the article

  • In BASH how can i find my system on active internet interface, what is the upload speed?

    - by YumYumYum
    I am trying to write an TUI bandwidth trace application which on query can instantly tell me, that my download and upload speed is XXXX. I have figured out that download i can use with wget and parse it using BASH, but how do i get the upload speed? Example of download parse method: 1) Remote download : wget http://x.x.com:7007/files/software/vnc.zip Length: 1594344 (1.5M) [application/zip] Saving to: `vnc.zip' 100%[==================================================================>] 1,594,344 573K/s in 2.7s 2012-03-24 11:35:22 (573 KB/s) - `vnc.zip' saved [1594344/1594344] 2) Local download tells Length: 1594344 (1.5M) [application/zip] Saving to: `vnc.zip' 100%[==================================================================>] 1,594,344 --.-K/s in 0.1s 2012-03-24 06:43:04 (11.4 MB/s) - `vnc.zip' saved [1594344/1594344]

    Read the article

  • How to Grab MAC Address of Active Ethernet Connection in Bash Script?

    - by Huy Tran
    Simple Question: How do I grab the MAC address of the active Ethernet connection in a bash script? I currently have: set - `/sbin/ifconfig eth0 | head -1` MAC=$5 Which outputs the MAC address of the eth0, but if it's eth1 that's active, I want that instead. Could I beforehand execute ifconfig | grep inet but that wouldn't tell me which interface is active, just that one is active. I need to grab the line above it to tell me which one is the active connection. Any help would be much appreciated. Thank you!

    Read the article

  • Bash: any command to replace strings in text files?

    - by mikez302
    I have a hierarchy of directories containing many text files. I would like to search for a particular text string every time it comes up in one of the files, and replace it with another string. For example, I may want to replace every occurrence of the string "Coke" with "Pepsi". Does anyone know how to do this? I am wondering if there is some sort of Bash command that can do this without having to load all these files in an editor, or come up with a more complex script to do it. I found this page explaining a trick using sed, but it doesn't seem to work in files in subdirectories.

    Read the article

  • Save user names on .txt file witch username is listed in /etc/passwd file. Bash

    - by user1448637
    well my goal is to make bash script to check if the username exist in /etc/passwd, if true i want to add it to the users.txt file. i am not really good at UNIX programming so i hope somebody help me. while(get to the end of /etc/passwd){ name=$(cat /etc/passwd | cut -d: -f1); num1=$(cat /etc/passwd | cut -d: -f3); num2=$(cat /etc/passwd | cut -d: -f4); if(num1==num2) /*i compare argv[0] with $name */ /* if true i=1 */ } if(i==1) save folowing string "argv[0]=agrv[1]" else "error message"

    Read the article

  • Any tips on switching from bash to zsh if often using shell inside of emacs?

    - by justingordon
    Related to this question: Advantages and disadvantages between zsh and emacs' (e)shell, I've read some great things about zsh, when using M-x shell, my familiar emacs shell seemed like it would need some customizations. I also use evil-mode in shell mode, so that means I use vi keystrokes for shell editing. Took a little while to get accustomed to this, but I really like it. Any advice or tips on going from bash to zsh if one uses emacs? Or better off adding the file completion mentioned in this question: Worth switching to zsh for casual use?.

    Read the article

  • What is the best, python or bash for selectively concatenating lots of files?

    - by Werner
    Hi, I have around 20000 files coming from the output of some program, and their names follow the format: data1.txt data2.txt ... data99.txt data100.txt ... data999.txt data1000.txt ... data20000.txt I would like to write a script that gets as input argument the number N. Then it makes blocks of N concatenated files, so if N=5, it would make the following new files: data_new_1.txt: it would contain (concatenated) data1.txt to data5.txt (like cat data1.txt data2.txt ... data_new_1.txt ) data_new_2.txt: it would contain (concatenated) data6.txt to data10.txt ..... I wonder what do you think would be the best approach to do this, whether bash, python or another one like awk, perl, etc. The best approach I mean in terms of simplest code. Thanks

    Read the article

  • Upon USB insert, record unique identifer sting, format drive to FAT32 and copy a file. Bash or Pytho

    - by samsixty
    Hello, This is what I want to do, insert USB flash drive. mount it. record uniquie identifer string to a file. format the drive to FAT32. copy a text file to the drive. unmount it. remove the drive. 30 times The situation is this, I have bought 30 usb drives. I need to format each one to ensure they are clean, I need the unique string from each device. I need to put the same txt file on each one. I am not great at writing scripts but can read and follow bash and python. Any pointers would be appreciated.

    Read the article

  • Open Terminal with multiple tabs and execute application

    - by user172001
    I am new to linux shell scripting. I want to write a shell script which will open terminal with multiple tabs; it should run rtsp client app in each tab. For this, I have gone through question here in this forum and tried to code like bellow, tab="--tab-with-profile=Default -e " cmd="java RunRTSPClient" for i in 1 2 3 4 5 do # foo="$foo $tab $cmd" done gnome-terminal $foo exit 0 This is running and opens the terminal window with tabs but suddenly it will close. I am not getting any errors.

    Read the article

  • What is the best way to include other scripts?

    - by Aaron H.
    The way you would normally include a script in bash is source. For example: main #!/bin/bash source incl.bash echo "The main script" incl.bash echo "The included script" The output of executing ./main: The included script The main script Now, if you attempt to execute that shell script from another location, it can't find the include unless it's in your PATH. What's a good way to ensure that your script can find the included script, especially if for instance, the script needs to be portable?

    Read the article

  • Help with a simple incremental backup script

    - by Evan
    I'd like to run the following incomplete script weekly in as a cron job to backup my home directory to an external drive mounted as /mnt/backups #!/bin/bash # TIMEDATE=$(date +%b-%d-%Y-%k:%M) LASTBACKUP=pathToDirWithLastBackup rsync -avr --numeric-ids --link-dest=$LASTBACKUP /home/myfiles /mnt/backups/myfiles$TIMEDATE My first question is how do I correctly set LASTBACKUP to the the the directory in /backs most recently created? Secondly, I'm under the impression that using --link-desk will mean that files in previous backups will not will not copied in later backups if they still exist but will rather symbolically link back to the originally copied files? However, I don't want to retain old files forever. What would be the best way to remove all the backups before a certain date without losing files that may think linked in those backups by currents backups? Basically I'm looking to merge all the files before a certain date to a certain date if that makes more sense than the way I initially framed the question :). Can --link-dest create hard links, and if so, just deleting previous directories wouldn't actually remove linked file? Finally I'd like to add a line to my script that compresses each newly created backup folder (/mnt/backups/myfiles$TIMEDATE). Based on reading this question, I was wondering if I could just use this line gzip --rsyncable /backups/myfiles$TIMEDATE after I run rsync so that sequential rsync --link-dest executions would find already copied and compressed files? I know that's a lot, so many thanks in advance for your help!!

    Read the article

  • Difference between sh file.sh and file.sh

    - by RAS
    I have two questions : What is the difference between executing sh filename.sh and filename.sh? How can I make both of them giving me the same output ? I'm asking this question as right now I'm facing a problem. I'm trying to run a Java + SWT application from terminal. When I do filename.sh, it gives me the desired output. But when I do sh filename.sh or bash filename.sh, it throws me an error : Exception in thread "main" java.lang.NoClassDefFoundError: MainForm/java Caused by: java.lang.ClassNotFoundException: MainForm.java at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: MainForm.java. Program will exit. I know this question is already asked here but I'm still not clear about it. I have gone through the following links : What is the difference between ./ and sh to run a script? Can scripts run even when they are not set as executable? Can anyone help me with this?

    Read the article

  • Crontab -e gives me error messages

    - by DNA
    I get a bunch of error messages when I run crontab -e Here are the error messages. And here is my crontab file under `/usr/bin/': # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) 30 * * * * root rsync /home/dnaneet/Downloads/*.pdf /home/dnaneet/Downloads/pdfs/ # I notice that the last task ('rsync') NEVER RUNS! Why is this happening? What did I do wrong? Running Ubuntu 11.10/Bash. I have read this... Am I missing a shebang? And I don't know if my anacron jobs run. Edit 1 In light of Masi's comment, I commented out lines 17 thru 25 of my crontab file with #. Now when I run sudo crontab -e, all I get is: /usr/bin/crontab: 11: 17: not found /usr/bin/crontab: 12: 25: not found (gedit:4301): Gtk-WARNING **: Attempting to store changes into `/root/.local/share/recently-used.xbel', but failed: Failed to create file '/root/.local/share/recently-used.xbel.GOHVBW': No such file or directory (gedit:4301): Gtk-WARNING **: Attempting to set the permissions of `/root/.local/share/recently-used.xbel', but failed: No such file or directory What in the world?

    Read the article

  • Removing specific part of filename (what's after the second dash) for all files in a folder

    - by Bodo
    I use the command line utility youtube-dl to download videos from YouTube and make mp3s from them with avconv. I'm doing this under Ubuntu 14.04 and very happy with it. The utility downloads the files and saves them with the following name scheme: TITLE(artist-track)-ID.mp3 So an actual filename looks like: EPIC RAP BATTLE of MANLINESS-_EzDRpkfaO4.mp3 Some other file names in the folder look like: EPIC RAP BATTLE of MANLINESS-_EzDRpkfaO4.mp3 Martin Garrix - Animals (Official Video)-gCYcHz2k5x0.mp3 Stromae - Papaoutai-oiKj0Z_Xnjc.mp3 At first, this was no problem. It didn't bother me while listening to my music in Rhytmbox. But when moving to phone or other devices it is pretty confusing to see a so long name, and some players, like the Samsung ones, treat that last part (id after second dash) of the name as Album or something. I'd like to create a bash script that removes what's after the second dash in the name for all files, so it'll make them like this: From: Martin Garrix - Animals (Official Video)-gCYcHz2k5x0.mp3 To: Martin Garrix - Animals (Official Video).mp3 Is it also possible to instruct youtube-dl to exclude the ID from now on? I am currently downloading with the command: youtube-dl --extract-audio --audio-quality 0 --audio-format mp3 URL

    Read the article

  • Help with "advanced" shell scripting | how to create an image preview of a pdf

    - by lucapozzobon
    First of all, sorry for my english: i'm not british/american. Here is my problem. I've got a folder named pdf with lots of files pdf inside it. I've got another folder named thumbnail, which is empty. I want to create jpg images preview of each pdf to use them in my HTML webpages as previews of the pdf. To do this I'm using a software called IMAGEMAGICK. I tried to put the code inside my PHP files to get the purpose, but it doesn't work. As you understood, I have created a small search engine with apache, mysql to search for pdf locally (offline). Now I want to add a "preview" of the first page of pdfs. Instead, it works by bash command line and the code is: convert pdf/name_of_the_file_pdf.pdf[0] name_of_the_imagefile.jpg (The zero stands for that the image is taken from the FIRST page of pdf) How can i make a script that takes each name of pdf files and put it into that code???? To list all the file, I did ls >pdf but with the little knowledge I have I can't go further.... Some pdf's names contain spaces....Is that a problem? PDF files are so many that i can't do the task typing every name,it wouldn't be a nice and clever work!!!! Thanks a lot in advance!!!

    Read the article

  • Transmission shutdown script for multiple torrents?

    - by Khurshid Alam
    I have written a shutdown script for transmission. Transmission calls the script after a torrent download finishes. The script runs perfectly on my machine (Ubuntu 11.04 & 12.04). #!/bin/bash sleep 300s # default display on current host DISPLAY=:0.0 # find out if monitor is on. Default timeout can be configured from screensaver/Power configuration. STATUS=`xset -display $DISPLAY -q | grep 'Monitor'` echo $STATUS if [ "$STATUS" == " Monitor is On" ] ### Then check if its still downloading a torrent. Couldn't figure out how.(May be) by monitoring network downstream activity? then notify-send "Downloads Complete" "Exiting transmisssion now" pkill transmission else notify-send "Downloads Complete" "Shutting Down Computer" dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.RequestShutdown fi exit 0 The problem is that when I'm downloading more than one file, when the first one finishes, transmission executes the script. I would like to do that but after all downloads are completed. I want to put a 2nd check ( right after monitor check) if it is still downloading another torrent. Is there any way to do this?

    Read the article

< Previous Page | 40 41 42 43 44 45 46 47 48 49 50 51  | Next Page >