On Wed, May 17, 2017 at 10:41 PM, paralleluser <[email protected]> wrote: : > Question 1: > The choice of ::: and :::: are unique. Yes, they are arbitrary and they can > be changed with parallel command line arguments. But how/why where they > chosen? I have a good guess as to why ":" and "::" were not used, but how > did Ole decide on ::: and :::: and why did he skip : and :: ?
There were several thing that caused the choice of :::. = It could not be anything you would write in a normal command = I had seen other commands using -- to separate arguments from options (e.g. 'ls -- -l') and I knew I would be using GNU Parallel with commands having --. That ruled out --. I have used UNIX since 1990 and I have never ever written a command line with ::: which tells me it is a very unique separator. I have used both : and :: so even though they are not used often I wanted something even less used. = It should be easy to enter = It was also important that the separator could be written easily on most keyboards. So 'æøå' as separator would not be a wise choice. = It should not need quoting = At that time I only know csh, tcsh, sh and bash, and I needed something that would not need quoting in any of those shells. So < would not be a good choice as you would then have to quote that all the time: parallel --arg-sep '<' echo '<' 1 2 3 = It should visually separate the command from the arguments = I wanted it to be easy to scan the line to find where the command ended and where the arguments started. I did shortly consider ¤, but was not sure if that was easy to type on all keyboards. Most importantly though: It was not a long thought process back in July 2010. I figured if the choice was bad the users would complain and we would simply change it. The choice of :::: was very simple: ::: was already chosen and the users knew :::, so intuitively they would know :::: was in the same family. /Ole
