Bash script make itself executable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Bash script make itself executable
# 1  
Old 06-12-2018
Bash script make itself executable

Is there a way to make this make itself executable?

Thanks. :-)

Code:
cat > somescript.sh << \EOF
#!/bin/bash
block_count=$(sudo tune2fs -l /dev/sda1 | awk '/^Block count:/ {print $NF}')
reserved_block_count=$(sudo tune2fs -l /dev/sda1 | awk '/^Reserved block count:/ {print $NF}')

perl -e 'printf("%.1lf%%\n", ($ARGV[0] * 100.0 ) / $ARGV[1])' "$reserved_block_count" "$block_count"
EOF

Moderator's Comments:
Mod Comment edit by bakunin: changed ICODE- to CODE-tags

Last edited by bakunin; 06-12-2018 at 06:32 PM..
# 2  
Old 06-12-2018
Quote:
Originally Posted by drew77
Is there a way to make this make itself executable?
I am not quite sure what you mean by "this": you show a script (without a specified name) producing another script (named "somescript.sh").

If you want the original noname-script to be executable, then put its text into a normal file (i.e. /some/where/script.sh) and issue this command:

Code:
chmod 754 /some/where/script.sh

This will make it executable for the owner (7) and the owners group (5), which most times makes sense. If you have special security considerations this might have to be changed.

If you just want the created script (somescript.sh) to be executable then add this to your script:

Code:
cat > somescript.sh << \EOF
#!/bin/bash
block_count=$(sudo tune2fs -l /dev/sda1 | awk '/^Block count:/ {print $NF}')
reserved_block_count=$(sudo tune2fs -l /dev/sda1 | awk '/^Reserved block count:/ {print $NF}')

perl -e 'printf("%.1lf%%\n", ($ARGV[0] * 100.0 ) / $ARGV[1])' "$reserved_block_count" "$block_count"
EOF
chmod 700 somescript.sh

although i suggest that you use absolute pathes in scripts. This will create the script anywhere - and likely not where you expect it to be.

I hope this helps.

bakunin
# 3  
Old 06-12-2018
Thanks.

Using chmod +x somescript.sh lets me run script without inputting pw.

I place all my scripts in /bin so they can be run from any dir.
# 4  
Old 06-12-2018
You really should not use /bin - a link usually to /usr/bin - for anything.

Bakunin (some others ) posted a long dicsussion of how this can make trouble for you. I cannot find the link at the moment, perhaps he can find it for you.
This User Gave Thanks to jim mcnamara For This Post:
# 5  
Old 06-12-2018
My post was a little incomplete.

/bin was short for /home/andy/bin.

I know not to put scripts in root owned directories.

This is what I ended up with.
gxmessage is very handy.


Code:
#!/bin/bash
# Ubuntu_Mate 16.04 LTS
#
# Show reserved blocks
#
echo marlin | sudo -S tune2fs -l /dev/sda1 > list_tune.txt
# looks for block count and IS case insensitive
#
echo "Reserved Blocks (Reserved block count should be 1% of Block count)" > list_reserved.txt
grep -i "block count" list_tune.txt >> list_reserved.txt

# Show block and reserved block counts
gxmessage -fg red -font  'sans 20' -timeout 3 -file list_reserved.txt


Last edited by RudiC; 06-13-2018 at 05:28 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Making bash script allways executable when transfer ?

Does it possible to make some bash script automatic to be a executable when transfered to another pc...? (5 Replies)
Discussion started by: tomislav91
5 Replies

2. Shell Programming and Scripting

How to create an executable bash script for these commands?

I wish to create an executable bash script that will run the following commands as root, that is, using sudo su iptables-save | awk '/^ / { print $1 } /^:+ / { print $1 " ACCEPT" ; } /COMMIT/ { print $0; }' | iptables-restoreMy first attempt at bash... (9 Replies)
Discussion started by: thixeqi
9 Replies

3. Shell Programming and Scripting

How to produce a executable Oracle script from bash script?

Hi here's my code ${ORACLE_HOME}/bin/sqlplus /nolog <<!EOF --step 5 create db script start set feedback off set heading off set echo off conn / as sysdba spool ${ORACLE_SID}_db_link.sql SELECT 'CREATE '||DECODE(U.NAME,'PUBLIC','public ')||'DATABASE LINK '||CHR(10)... (2 Replies)
Discussion started by: jediwannabe
2 Replies

4. UNIX for Dummies Questions & Answers

Running Executable in Bash Script

Hey guys, so I've been trying to write a bash script called runSorter.sh that runs an executable that also takes in some parameters and outputs the results to a text file. The executable, sorter, takes in a number parameter. I want to make it so that you can input as many number parameters into... (4 Replies)
Discussion started by: Duo11
4 Replies

5. Shell Programming and Scripting

Unable to make script executable

Hello everybody, I'm unable to make my shell script an executable file. The details are as follows: PATH includes my $HOME/bin i.e. /rchome/rc1/bin HOME directory is /rchome/rc1 script name is prep_mig.sh permissions set are 755 It's executing if I give below command sh prep_mig.sh but... (4 Replies)
Discussion started by: jitu.keshwani
4 Replies

6. Shell Programming and Scripting

How to make a script (Bash, KornShell, etc.) executable by mouse clicking?

Hello everybody, Is there any way to make a script (Bash, KornShell, etc.) executable by mouse clicking? For example you have a file myscript.sh, you run: $ chmod u+x myscript.sh Therefore it becomes executable and all you need is to run from the terminal: $./myscript.sh... (2 Replies)
Discussion started by: dariyoosh
2 Replies

7. Shell Programming and Scripting

run and make an executable file

as i said before i'm a beginner in shell programming and i have two questions: how to run an executable file in shell scripts like for example let's say the file called "prog.exe", what's the shell command to run this file? also how can i make the shell file an executable file (if it is... (5 Replies)
Discussion started by: _-_shadow_-_
5 Replies

8. Shell Programming and Scripting

how to make your bash script run on a machine with csh and bash

hi, i have a script that runs on bash and would like to run it on a machine that has csh and bash. the default setting on that machine is csh. i dont want to change my code to run it with a csh shell. is there any way i can run the script (written in bash) on this machine? in other words is there... (3 Replies)
Discussion started by: npatwardhan
3 Replies

9. Solaris

How to make a script executable by all users?

I have a script in my home direcroty which upon execution gives the essential system information like memory,cpu etc and is currently owned by root:root. Now I want to see that every non root user will run this file and grab the reqired system info. I know this is some thing associated with chown... (2 Replies)
Discussion started by: chrs0302
2 Replies

10. UNIX for Dummies Questions & Answers

How do I make a cgi script World-executable

I'm trying to set up a form mail script on a website that when Submitted, a cgi script is executed and a perl translator (located in a secured and inaccessible folder) translates the script. After speaking to my hosting provider, I was told to "Telnet into the system and make the script... (2 Replies)
Discussion started by: tylerl
2 Replies
Login or Register to Ask a Question