[Solved] Question about licensing
Hello all,
I'm not sure if this is the right section, but I thought this at least fits better than the Programming subforum.
I am currently working on a volumeicon meant to be in the system tray. Initially, I started out with Fogobogo's gtk-vol which is licensed under the BSD license.
However, the code has now substantially changed. I would go so far as to say that I only kept some function and variable names, other than that you won't see the relation between the two programs. But still, my code is based on it. Thus, my question: do I need to include the BSD license or am I now free to use whatever license I want? (GPL) Or: should/could I use both?
For the record, in the initial program, Fogobogo did not state the usual Copyright (C) Fogobogo 2011. Does this matter any?
Thanks in advance!
Last edited by Unia (2013-07-17 13:35:33)
Unia wrote:For the record, in the initial program, Fogobogo did not state the usual Copyright (C) Fogobogo 2011. Does this matter any?
This doesn't matter at all. There used to be a requirement for such a notification, but that has long since been removed. Copyright is now implied.
If there was any doubt, the copyright is clearly asserted by providing a license (BSD in this case).
But a more fundamental question is why you would want to cheat someone out of their due credit. You seem to be talking of formalities of how much the code has changed - this seems to focus too much on the letter of the law rather than the spirit of the law (actually it may violate the letter of the law too). If fogobogo's work was a noteworthy inspiration for your own, that should be noted. Legality is only one issue, giving credit to the work that inspired/guided/helped you along the way is just the right thing do do.
Take a look at my copyright notice in alopex for example. N. Welch (TinyWM) is the only one I took any actual code from, and there probably isn't any of it actually left - but it was the starting point on which I build everything else. It was bootstrap code: I started with that, added a lot, then removed most of what was initially there. The point is, though, that without Nick's code, I would have never been able to write alopex. Also he has released TinyWM into the public domain, so I have no official requirement to acknowledge him at all, even if I kept all of his code. I also credit dwm and i3 authors - I didn't use any actual code directly from those projects, though I studied dwm's code and in inspired the general structure of my code - I never even looked at i3's code, there's just too much of it.
You're asking what you can do - but just because you can, doesn't mean you should. Err on the side of giving credit to those whose work has contributed to your own, then you be doing the right thing and you'll be pretty much ensured to be 'legal'.
If it were me, I'd use both licenses with the simple note that some of the code originated from, or was inspired by fogobogo's project licensed under the BSD license.
Last edited by Trilby (2013-07-10 12:33:13)
Similar Messages
-
[SOLVED] Question about CPU temperature
Hi everybody,
I just want to ask a question about "standard" CPU temperatures because my laptop (a Dell Vostro 3700) is permanently hot with the fans on even when I am not doing anything special.
I have CPU freq scaling active with the conservative governor, and I use Gnome Shell 3.2 with an nVidia using the nouveau driver.
Here are "stable" temperatures while writing this post:
# sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +72.5°C (crit = +103.0°C)
nouveau-pci-0100
Adapter: PCI adapter
temp1: +78.0°C (high = +100.0°C, crit = +110.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +73.0°C (high = +95.0°C, crit = +105.0°C)
Core 2: +73.0°C (high = +95.0°C, crit = +105.0°C)
And this is the output of mpstat
# mpstat -P ALL
Linux 3.1.6-1-ARCH (fm) 01/04/2012 _x86_64_ (4 CPU)
10:16:50 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
10:16:50 PM all 1.59 0.18 0.54 0.02 0.00 0.02 0.00 0.00 97.65
10:16:50 PM 0 1.88 0.15 0.72 0.02 0.00 0.01 0.00 0.00 97.22
10:16:50 PM 1 1.64 0.21 0.40 0.02 0.00 0.01 0.00 0.00 97.73
10:16:50 PM 2 1.47 0.15 0.67 0.02 0.00 0.06 0.00 0.00 97.64
10:16:50 PM 3 1.36 0.20 0.39 0.02 0.00 0.01 0.00 0.00 98.01
The fan, of course, is full speed (very annoying)
I think that these temperatures are quite high, but I don't know what's really causing all this heating because my laptop is basically idle.
Any suggestion?
Thanks.
P.S.: Running Linux fm 3.1.6-1-ARCH #1 SMP PREEMPT Thu Dec 22 09:11:48 CET 2011 x86_64 Intel(R) Core(TM) i5 CPU M 430 @ 2.27GHz GenuineIntel GNU/Linux
Last edited by fm (2012-01-06 09:32:01)samuvuo wrote:
fm wrote:Just to wrap up this topic, I "solved" the issue by adding these parameters to the kernel:
Just curious: what are the temperatures now? Sensors output after the "fix" would be nice.
It's in the previous posts:
Before (idle)
# sensors
acpitz-virtual-0
Adapter: Virtual device
temp1: +72.5°C (crit = +103.0°C)
nouveau-pci-0100
Adapter: PCI adapter
temp1: +78.0°C (high = +100.0°C, crit = +110.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +73.0°C (high = +95.0°C, crit = +105.0°C)
Core 2: +73.0°C (high = +95.0°C, crit = +105.0°C)
After (idle)
acpitz-virtual-0
Adapter: Virtual device
temp1: +63.5°C (crit = +103.0°C)
nouveau-pci-0100
Adapter: PCI adapter
temp1: +68.0°C (high = +100.0°C, crit = +110.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +62.0°C (high = +95.0°C, crit = +105.0°C)
Core 2: +64.0°C (high = +95.0°C, crit = +105.0°C)
After (after playing 8 min youtube video)
acpitz-virtual-0
Adapter: Virtual device
temp1: +74.5°C (crit = +103.0°C)
nouveau-pci-0100
Adapter: PCI adapter
temp1: +78.0°C (high = +100.0°C, crit = +110.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +73.0°C (high = +95.0°C, crit = +105.0°C)
Core 2: +75.0°C (high = +95.0°C, crit = +105.0°C)
Fan spinning is better (less noisy) after specifying the kernel parameters.
Thanks
Last edited by fm (2012-01-06 13:43:05) -
[SOLVED] Question about resolv.conf
I successfully configured my Arch box with a static IP by following the instructions on the Arch wiki page here but had a couple of questions about configuring /etc/resolv.conf:
1) What is the proper way to obtain the domain name that should be inserted into resolv.conf?
2) What exactly is this domain name used for? I read the man page but still don't really understand it. Why do I need a domain name if I already have a working set of nameservers to resolve IP addresses?
EDIT: @ewaller Yes I edited the OP because I realized that my original problem was that I just hadn't added a domain name in my resolv.conf file. I edited my original post because 1) the instructions are already posted clearly on Arch Wiki so my post really wouldn't be beneficial and 2) so I could ask my real question without making other people waste their time reading through my other nonsense
Last edited by choogi (2010-09-09 04:06:45)yejun wrote:You can just use public dns like 8.8.8.8 or 4.2.2.1. There's no other way to get dnsserver besides dhcp.
Yes, I know how to get a nameserver, but I'm asking about the domain name that goes in resolv.conf. The Arch wiki tutorial for setting up static IP uses the following resolv.conf as an example:
nameserver 61.23.173.5
nameserver 61.95.849.8
search example.com
My question has to do with what the "search example.com" does. I don't have a domain name associated with my machine, but if I remove that line, then I get "web page unavailable" when I try to load any web site, which suggests that I'm not connecting to any nameservers right? -
[SOLVED] Question about GCC error messages.
I'm currently taking a course in C programming, and I have a question about the error messages returned by GCC.
When ever i try to compile a program containing syntax errors, i get cryptic and not very helpfull error messages.
If i try to compile:
#include <stdio.h>
int main(void)
int i;
i = 0
return 0;
I get following from GCC:
error.c: In function â:
error.c:8:2: error: expected â before â
But shouldn't the message be something like:
error.c: In function 'main':
error.c:8:2: error: expected ; before 'return'
or am I mistaken?
/AcId
Last edited by AcId (2010-10-13 17:48:19)Woah. That is very strange. I've never seen that before.
I assume you're using Arch Linux. What text editor did you use to write the code? Which terminal application are you using?
...those questions are probably unrelated to the problem, but we might as well get them out of the way. -
[Solved] Questions about Arch on T420s
Hello everybody,
I'm relatively new to Arch and switched from Ubuntu last year. Since then I've learned a lot about Linux in general due to the great documentation provided by the Arch community.
I've managed to install Arch on my Thinkpad T420s with an UEFI Setup using Archboot. But still there are open questions.
My first question is about the UEFI System partition and grub2. Should the UEFI partition be mounted to the filesystem? What about updating Grub2 (eg for setting boot parameters) when the UEFI System partition is not mounted to the filesystem. Up to now I've set boot parameters by manually mounting the UEFI partition and editing the Grub2's menu.lst equivalent. I think this is not optimal.
My second question is about some graphical artifacts in Gnome 3. The T420s uses Intel HD 3000 Graphics. Sometimes icons in nautilus disapear or get replaced by black planes when hovering over them with the mouse cursor. Similar black planes replacing icons can be observed sometimes in Evolution or Rhythmbox. Furthermore gnome-terminal becomes transparent sometimes when I'm scrolling or switching between powertop2 tabs. Anyone else observed similar issues on their T420s or on other models with an Intel HD 3000? I use several options for the i915 driver but none of them seem to be related to the graphical artifacts. Furthermore I've disabled dVT in the BIOS.
options i915 modeset=1
options i915 i915_enable_rc6=1
options i915 i915_enable_fbc=1
options i915 lvds_downclock=1
options i915 semaphores=1
My last question is about the USB ports on my T420s. I've 3 USB ports, one on the left side (USB2.0) and two (USB3.0 and another USB2.0) on the back side. When I plug in a HD on the left side everything works fine and the filesystem is automatically mounted. When I plug in the same HD on the ports of the back side the HD isn't even recognized. Interestingly when i boot with the HD plugged into the back side ports everything works fine. Can you point me any directions how to solve this problem?
Hopefully sombody using Arch on a T420s has already solved these issues and could share the solutions. Otherwise I would be grateful for any suggestions.
Sincerely yours,
Tobsen
Last edited by tobsen (2012-02-09 17:15:27)Hi Tobsen, I have a T420 also. Perhaps my experiences will be some help?
Regarding the USB ports: I installed Arch on my T420 with the Kernal 3.0.3 snapshot and all the USB ports worked out of the box. That sounds like a problem with udev to me, though. Have you checked the wiki article on this?
Regarding the graphical artifacts: For me, when a popup window appears from hovering the mouse over an icon, the window is sometimes blank grey. It's totally inconsistent, and I can fix it by just hovering over it again, so I haven't really bothered to examine the source of the problem. Could this be related to your problem with the GPU? I figured it was a problem with the windows manager I'm using (Enlightenment e17), which is unstable.
Regarding UEFI: I don't use GRUB2, so this may not be good advice, but I personally feel like you should avoid auto-mounting partitions you don't always need. It slows down boot, and if the partition is mounted, user error could damage it. I say you should keep doing what you're doing. -
I have a question about License
Hello all,
I am new on these themes.I have to install a server with Oracle 10g. I suggested to my client they have to buy the license for Oracle.
My question is....Where or When The Installator Oracle requests me the License of Product
Thanks.
Best Regads
DavidLicensing costs are associated to production systems. They are also based on a combination of number of CPU and base price scenarios. If you are talking about Oracle Lite, then you will need a license for Oracle Enterprise Edition, Oracle Mobile Server, and possibly Oracle Application Server... or WebLogic server(This is suppose to be supported in the new year).
-
A question about license date validity during OS migration: AIX to Linux
Dear all,
I would appreciate if you could kindly give us
your advice about the following issue.
We have an environment dedicated for training. The environment was
initially installed on AIX platform. However, after a while the
technical direction decided to migrate to Linux.
The migration was done at 18 September 2009, and during this process
the very date was chosen and designated by SAP to be the
valid start date of the new SAP license.
Now, our problem is, that the data programmed in this SAP envionment
(used for training) is not compatible with the current date. In
order to make them work properly, the host system date must always be
set to the last year (this is because we had unfortunately some delay for
the migration).
It is fundamental to remark, that currently, we are absolutely not able to
modify the data and the sole solution (although not the best one) to
tackle this problem is to modify the operating system's date. This is
precisely how we proceeded, but unfortunately we encountered a SAP license
check problem during logon.
As I explained, the migration from AIX to Linux was performed at
18 September 2009, which means, this was the date for the new license.
Yet, we need to go further in the past and to choose 24th July 2008.
On the operating system, of course, there is no problem and the
administrator can modify the host date with the appropriate date, but
on the other hand, by choosing this date, we are no more able to work
within this SAP environment. At the logon time, we receive a license
check error, which is normal, because the host date (24th July 2009) is anterior
than the start date for the SAP license (18 September 2009).
Also, we cannot ask for another license, because we will have the same problem,
they never create a license dated for the last year, and they always create an
up-to-date license.
Could you kindly guide us how we can manage to solve this issue?
Thanks in advance,
Kind Regards,
DariyooshI think you're better off opening an OSS message in this particular case.
Regards
Juan -
[SOLVED] Question about systemd-user-session
Hi!
I'm trying to setup a systemd --user session (using user-session-units and xorg-launch-helper from aur).
I have a couple of questions; this is my .xinitrc now:
#!/bin/bash
export BROWSER=chromium
if [ -d /etc/X11/xinit/xinitrc.d ]; then
for f in /etc/X11/xinit/xinitrc.d/*; do
[ -x "$f" ] && . "$f"
done
unset f
fi
spacefm --desktop &
compton -cGCf -m 0.9 -i 0.8 -D 5 --shadow-exclude 'g:e:Conky' &
volumeicon &
/home/federico/Script/touchpadoff_onboot.sh &
#connman-ui-gtk &
/home/federico/Script/calised-script &
dimdaemon &
tint2 -c .config/tint2/dragonauta.tint2rc &
conky -p 5 -c Script/conky.conf &
exec openbox
1) is "if" statement required when using systemd-user-session? And if yes, how can I reproduce it?
2) "conky -p 5 " will wait 5 seconds doing nothing. Will this mean that other .service will wait for it to finish? (i guess no, since they're executed in parallel).
3) how can I export "chromium" as my default browser?
Thank you very much!
Last edited by nierro (2013-04-06 17:56:17)I followed everything in that wiki, and in KaiSforza and sofar github page.
I finally managed to get my old method (autologin to vt and autostart x) to work together with systemd --user: i put in .xinitrc "systemd --user" and deleted everything else.
So, my .config/systemd/user/ works. The problem is in the [email protected], i guess. I configured it like wiki says, mind to post here your /etc/systemd/system/[email protected]?
Thanks.
EDIT: here it is my [email protected]:
# This file is part of systemd.
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
[Unit]
Description=User Manager for %I
After=systemd-user-sessions.service
# This is needed for folks running Xorg on vt/1
Conflicts=[email protected]
[Service]
User=%I
PAMName=login
# Note memory:/ required kernel memory CGroups support
ControlGroup=%R/user/%I/shared cpu:/ memory:/
ControlGroupModify=yes
Type=notify
TTYPath=/dev/tty1
ExecStart=-/usr/lib/systemd/systemd --user
Environment=DISPLAY=:0
Environment=XDG_RUNTIME_DIR=/run/user/%U
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%U/dbus/user_bus_socket
[Install]
WantedBy=getty.target
and loginctl says my user has "1000" as UID.
Last edited by nierro (2013-04-05 16:13:14) -
Question about licensing a project under GPL
Hi all. I've been working on a bit of a summer project and it's nearing completion. I thought I might aswell share it with other people, and the topic of licensing crossed my mind. I'm just wondering about whether i'm doing everything right so that I can register the project on sourceforge.
It consists of a single 2000 line BASH script. That can be licensed under the GNU GPL right?
I read the stuff on the GNU website and all it seems I need to do is put a copyright comment at the top of the BASH script and supply a copy of the GNU GPL with the tar.gz. Is that all there is to it?
Thanks!Since you rebuild the version of the package gets incremented. No structural changes occur.
Arthur
MyBlog
Twitter -
[SOLVED] Question about Feh
I installed feh to use as a file browser image launcher (https://wiki.archlinux.org/index.php/Fe … e_Launcher) and as a desktop wallpaper manager (https://wiki.archlinux.org/index.php/Fe … er_manager), but it seems that I each time must use "sudo" for this. Therefore I think the script from the wiki page will not launch in Thunar and that the wallpaper will not load on start up in i3. In order to do this, I think I must add my user to a group, but I'm not sure which one or if it is the right way to solve it. Would you please assist me with this and thank you in advance.
Last edited by rayanamukami (2014-04-26 09:32:36)Thank you for your advice, I should not use sudo as often as I do.
In Thunar opening an image with the feh_browser.sh script gives the following message.
Failed to execute application "feh_browser.sh".
Failed to execute child process "/home/kohaku/feh_browser" (Permission denied).
For the wallpaper, I followed the wiki page about i3 (https://wiki.archlinux.org/index.php/I3 … _wallpaper). The following command gives the following message.
$ feh --bg-scale /path/to/image.file
feh WARNING: /home/kohaku/.feh/wallpaper/touhou.png - No read access
feh ERROR: Unable to load image /home/kohaku/.feh/
I have added
exec --no-startup-id sh ~/.fehbg
to
~/.i3/config -
[SOLVED] Question about bash
The default .bashrc file looks like this. When installing rvm I noticed that it is not sourcing scripts under /etc/profile.d.
# ~/.bashrc
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
PS1='[\u@\h \W]\$ '
I just solved my issue by adding the following code to .bashrc. I was just wondering if this should be done by default perhaps in the package that installs /etc/skel/.bashrc?
if [ -f /etc/profile ]; then
. /etc/profile
fi
Last edited by MikeW (2014-11-12 05:28:25)Seems that it is an rvm issue. After a bit of searching for rvm problems I found this post that gave me the rvm specific solution. This is probably the preferred fix since its just rvm that's the issue here.
http://askubuntu.com/questions/40287/et … ng-sourced
The key is serveral posts down...
Installing RVM as multiuser requires the user to run this command:
echo '[[ -s "/etc/profile.d/rvm.sh" ]] && . "/etc/profile.d/rvm.sh" # Load RVM function' >> ~/.bashrc
So I can remove the /etc/profile bit now. Thanks for stearing me in the right direction to fix this. -
[SOLVED] Question about clipping
Hello,
I'm using JOGL and I have question. When the camera gets close to my test-house, JOGL automaticly clips parts of the house. Have a look at [this image|http://img194.imageshack.us/img194/6236/clipping.png] to see what I mean.
My question: How to prevent that clipping? I don't want it to clip...
Thanks,
Matt
EDIT: Solved it myself, I had to lower the perspective lower-limit (gluPerspective)See my first post.
-
*Solved* Question about ATI Drivers
Ok, I'm just finished installing, and I know most distro's, ask you to remove the open source drivers, before adding in FGLRX drivers. Looking at the wiki, I didn't noticed if this needed to be done, and after going through the install, I rebooted. It went as planned until kdm went to load. The screen was unreadable. I used the cd media to mount root, and removed catalyst, and re-installed the opensource drivers. All is well atm, so I'm trying to figure out what I missed. My question atm though is during the FGLRX install, it ask's if you want to removed the opensource drivers due to conflict. If I hit yes, will pacman it automatically remove the required drivers, or do I need to manually remove the Fx86 drivers on my own?
I do apologize for not having a /etc/X11/xorg.conf report, as it slipped my mind while fixing everything. I'll try to make a better habbit of getting it made. I did do a aticonig --inital before the reboot, so i know it won't that.
If I missed anything on the wiki, please let me know, I'll look again at it after dinner.
Thank you all for your time in the matter.
Last edited by bigcountryva (2012-09-30 01:01:49)Silex89 wrote:
Hi there
First off, which installation method are you following? (ABS using the AUR package, the unofficial repository or the AMD installer). Depending on which method you use, you'll have (or not) a resolved dependency. For instance, you have to remove both the open source driver and your former xorg.conf file (safer is to back it up) to be able to install Catalyst with the AMD's site installer.
If you use AUR (with a tool like Yaourt for example) or the repo method, pacman/yaourt should do it for you, but in a lot of cases it doesn't (I switched to Catalyst having my OpenBox session built already, so when I tried to remove the open source driver it complained about all of the apps that I had installed for removing a dependency like libgl or mesa) and you'll have to do a pacman -Rdd xf86-video-ati to make it work
I'm wondering if you remembered to add the mkinitcpio hook (which is needed to make Catalyst work).
What I would suggest is to re-read the wiki page for Catalyst, see if your card is still supported by Catalyst, maybe your card needs Catalyst-Legacy...
Best of Luck with that
I figured it out, and got it working. I had a typo adding the module for flgxr driver. Fixed it and a soft boot later, all is well. I also deicided to make it so I have to "startx" into my gui, incase this happens again, I won't need the installation media. Thanks for the input. -
[SOLVED] Question about "loadkeys" from the install procedure
https://wiki.archlinux.org/index.php/In … ard_layout
https://wiki.archlinux.org/index.php/Be … the_keymap
# loadkeys ro_win
They show up as black squares... Even after generating these locales, as per the Beginner's Guide:
[root@archiso ~]# locale-gen
Generating locales...
en_US.UTF-8... done
ro_RO.UTF-8... done
ro_RO.ISO-8859-2... done
Genetation complete.
What do?
PS: I noticed that they're activated with "Alt+Shift". There's no mention in the Install Guide or Beginner's Guide about this. Heh.
Last edited by DSpider (2012-08-24 14:45:34)From the LiveCD (in VirtualBox):
# nano x
<wrote these characters>
# cat x | curl -F "sprunge=<-" http://sprunge.us
And they show up fine: http://sprunge.us/MKBj
ăîşţâ
ĂÎŞŢÂ
Until a better explanation comes along, I've added this info to the BG:
Don't worry if some of the letters show up as white squares or as other symbols. It's probably just the console font missing those glyphs. The glyph codes are correct and if you press the correct keys they will show up fine when (or if) you set up a graphical environment later.
https://wiki.archlinux.org/index.php/Be … the_keymap
I guess I can mark it as solved... -
[SOLVED]Questions about a shell program and about shell: files, regexp
Hello, I'm writing this little program in shell:
#!/bin/bash
# Synopsis:
# Read from an inputfile each line, which has the following format:
# lllnn nnnnnnnnnnnnllll STRING lnnnlll n nnnn nnnnnnnnn nnnnnnnnnnnnnnnnnnnn ll ll
# where:
# n is a <positive int>
# l is a <char> (no special chars)
# the last set of ll ll could be:
# - NV
# - PV
# Ex:
# AVO01 000060229651AVON FOOD OF ARKHAM C A S060GER 0 1110 000000022 00031433680006534689 NV PV
# The program should check, for each line of the file, the following:
# I) If the nn of character lllnn (beggining the line) is numeric,
# this is, <int>
# II) If the character ll ll is NV (just one set of ll) then
# copy that line in an outputfile, and add one to a counter.
# III) If the character ll ll is NP (just one set of ll) then
# copy that line in an outputfile, and add one to a counter.
# NOTICE: could be just one ll. Ex: [...] NV [...]
# [...] PV [...]
# or both Ex: [...] NV PV [...]
# Execution (after generating the executable):
# ./ inputfile outputfileNOM outputfilePGP
# Check the number of arguments that could be passed.
if [[ ${#@} != 3 ]]; then
echo "Error...must be: myShellprogram <inputfile> <outputfileNOM> <outputfilePGP>\n"
exit
fi
#Inputfile: is in position 1 on the ARGS
inputfile=$1
#OutputfileNOM: is in position 2 on the ARGS
outputfileNOM=$2
#OutputfilePGP: is in position 3 on the ARGS
outputfilePGP=$3
#Main variables. Change if needed.
# Flags the could appear in the <inputfile>
# ATTENTION!!!: notice that there is a white space
# before the characters, this is important when using
# the regular expression in the conditional:
# if [[ $line =~ $NOM ]]; then [...]
# If the white space is NOT there it would match things like:
# ABCNV ... which is wrong!!
NOM=" NV"
PGP=" PV"
#Counters of ocurrences
countNOM=0;
countPGP=0;
#Check if the files exists and have the write/read permissions
if [[ -r $inputfile && -w $outputfileNOM && -w $outputfilePGP ]]; then
#Read all the lines of the file.
while read -r line
do
code=${line:3:2} #Store the code (the nnn) of the "llnnn" char set of the inputfile
#Check if the code is numeric
if [[ $code =~ ^[0-9]+$ ]] ; then
#Check if the actual line has the NOM flag
if [[ $line =~ $NOM ]]; then
echo "$line" >> "$outputfileNOM"
(( ++countNOM ))
fi
#Check if the actual line has the PGP flag
if [[ $line =~ $PGP ]]; then
echo "$line" >> "$outputfilePGP"
(( ++countPGP ))
fi
else
echo "$code is not numeric"
exit
fi
done < "$inputfile"
echo "COUN NON $countNOM"
echo "COUN PGP $countPGP"
else
echo "FILE: $inputfile does not exist or does not have read permissions"
echo "FILE: $outputfileNOM does not exist or does not have write permissions"
echo "FILE: $outputfilePGP does not exist or does not have write permissions"
fi
I have some questions:
I) When I do:
if [[ -r $inputfile && -w $outputfileNOM && -w $outputfilePGP ]]; then
else
echo "FILE: $inputfile does not exist or does not have read permissions"
echo "FILE: $outputfileNOM does not exist or does not have write permissions"
echo "FILE: $outputfilePGP does not exist or does not have write permissions"
fi
I would like to print the things on the else, accordingly, this is, print the right message. Ex: if "$outputfileNOM" did not have the write permission, just print that error. BUT, I don't want to put a lot of if/else, Ex:
if [[ -r $inputfile ]]; then
if [[-w $outputfileNOM ]] then
else
For the READ permission, and the other for the WRITE
Is there a way to do it, without using a nesting approach, and that maintains the readability.
II) About the:
if [[ -r $inputfile && -w $outputfileNOM && -w $outputfilePGP ]]
is OK if I use the flag "-x" instead of -r or -w. I don;t have a clear definition of what is the meaning of:
-x FILE
FILE exists and execute (or search) permission is granted
III) Notice the ATTENTION label in my code. I notice that there are some possibilities, for ex: having white spaces before, after or before or after. I'm believing in the consistency of the input files, but if they change, it will explode. What could I do in this case? Is there an elegant way to manage it? (exceptions?)
Thank you very much!
EDIT: corrected what rockin turtle wrote bellow about the format. Thank you.
Last edited by gromlok (2011-10-09 18:39:03)I) Regarding your if statement, you could do something like this:
estr='FILE: %s does not exist or does not have %s permissions.\n'
[ -r $inputfile ] || ( printf "$estr" "$inputfile" "read" && exit 1 )
[ -w $outputfileNOM ] || ( printf "$estr" "$outputfileNOM" "write" && exit 1 )
[ -w $outputfilePGP ] || ( printf "$estr" "$outputfilePGP" "write" && exit 1 )
II)The -r/-w/-x mean that the file has the read/write/execute bit set. Do a
$ man chmod
for details.
III) You should be able to do
if [[ "$line" =~ .*\<NV\> ]]; then
echo "..."
(( countNOM++ ))
fi
but that didn't work for me when I tried it. I don't know if this is a bug in bash, or (more likely) something that I am doing wrong.
Regardless, I would write your script like this:
#!/bin/bash
file=$(egrep '^[A-Z]..[0-9]{2}' "$1")
grep '\<NV\>' <<< "$file" > "$2"
grep '\<PV\>' <<< "$file" > "$3"
echo 'Count NON:' $(wc -l < "$2")
echo 'Count PGP:' $(wc -l < "$3")
Note: In reading your script, your comments imply that each line of the input file starts with 'llnnn' but the example line you gave starts with 'lllnn'. That is, there are 3 letters (AVO) followed by 2 numbers (01). The above script assumes that lines start with 'lllnn'
Maybe you are looking for
-
Messages getting stuck in outbox
Hi, I would imagine this is a problem that comes up regularly here, so if anyone could direct me to a thread that deals with it...... ? I need to send an email to multiple recipients I tried to do this but got a message back saying that the addresses
-
Accessing variable from another class
Say I want to access String ABC from class XYZ from my main class. I have already created the object for the class I just don't know the syntax for accessing the variable. This is just an example. I figured this is just a problem of finding the right
-
Mailing to a group of contacts
MacBook Pro 10.4.8 Is it possible to send an e-mail, say to 20 people, and set up the e-mail so that the recpients do not see the rest of the distribution list i.e. it is as if the e-mail was only sent to one person? If you cannot do this natively in
-
Cannot process argument transformation on parameter 'Identity'.
Hi, When using remote exchange powershell I get this error: $MB = Get-Mailbox -Database MyDataBase $MB | foreach-object { $user = Get-User -identity $_ | select DisplayName } Cannot process argument transformation on parameter 'Identity'. Cannot con
-
I have ebooks on my ipod and when I'm listening to a story it will not go to the next chapter, it just starts over again with the chapter I just listen too. How do I correct this? It didn't do this before.