问题
Hoping someone might have some insight here. I have a small shell titled xrunner.sh.
#!/bin/bash
ct checkout -nc parentFolder
cd parentFolder/
ct mkdir -nc directory
ct checkin -nc directory
cd ..
ct checkin -nc parentFolder
pwd
When the commands are run individually on the CLI they all work fine, When run from the bash however the following is thrown back at me:
ct: bad phone number -- parentFolder
ct: bad phone number -- -nc
ct: bad phone number -- checkout
: No such file or directory
ct: bad phone number -- directory
ct: bad phone number -- -nc
ct: bad phone number -- mkdir
ct: bad phone number -- directory
ct: bad phone number -- -nc
ct: bad phone number -- checkin
: No such file or directory
ct: bad phone number -- parentFolder
ct: bad phone number -- -nc
ct: bad phone number -- checkin
Would anyone happen to know why this is or point me to some web reference that explains this? Thanks in advanced.
回答1:
That means you don't have defined the alias 'ct' properly
add:
alias ct=/path/to/cleartool
Note: if you want to add a directory to source control, don't forget to call mkelem
cleartool mkelem -mkpath dir1 -c "a comment"
See "Command line add to Source control of a directory with files in a dynamic view returns Error".
Notes:
- as this thread suggests, even if the alias is already defined, a
ct setview
won't allow furtherct
commands to work, becausesetview
spawns a sub-shell. See for instance "Python and ClearCase setview" for more onsetview
.
Soct
will work, except if you have furtherct
commands in a script after act setview
. - Just for information, here the the man page for the /usr/bin/ct command
ct(1) NAME ct - spawn getty to a remote terminal (call terminal)
The UNIX command "
/usr/bin/ct
" dials a phone number, where a modem connected to a terminal should be awaiting for the call, and then spawns a getty(1M) process to that terminal.
The "getty" process sets the terminal type, modes, speed and line discipline, and then invokes the "login" process, which in turn will execute a shell when a user authenticates correctly.
回答2:
The problem you get with ct: bad phone number...
is because there is actually another binary called ct
. You can run type -p ct
in bash to find which (too many years since I had the same problem so I do not remember where it was (/usr/xpg4/bin ??)).
So as VonC suggest, make an alias for ct.
来源:https://stackoverflow.com/questions/10416063/clearcase-running-commands-from-a-script-error-bad-phone-number