Why Do I Have No Exit Code From debootstrap?
![Creative The name of the picture](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO9GURib1T8z7lCwjOGLQaGtrueEthgQ8LO42ZX8cOfTqDK4jvDDpKkLFwf2J49kYCMNW7d4ABih_XCb_2UXdq5fPJDkoyg7-8g_YfRUot-XnaXkNYycsNp7lA5_TW9td0FFpLQ2APzKcZ/s1600/1.jpg)
![Creative The name of the picture](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYQ0N5W1qAOxLP7t7iOM6O6AzbZnkXUy16s7P_CWfOb5UbTQY_aDsc727chyphenhyphen5W4IppVNernMMQeaUFTB_rFzAd95_CDt-tnwN-nBx6JyUp2duGjPaL5-VgNO41AVsA_vu30EJcipdDG409/s400/Clash+Royale+CLAN+TAG%2523URR8PPP.png)
up vote
1
down vote
favorite
I am testing out debootstrap in a chroot via a bash script.
The snippet that runs it is:
#!/usr/bin/env bash
set -e
...
...
sudo debootstrap --verbose --arch=$ARCH $RELEASE $chroot_dir
if [ "$?" -ne "0" ]; then
echo "debootstrap failed."
echo "See $chroot_dir/debootstrap/debootstrap.log for more information."
exit 1
fi
echo "debootstrap succeeded"
However, after running the script the last lines printed to the terminal are:
I: Chosen extractor for .deb packages: dpkg-deb
I: Extracting adduser...
I don't see the failed or the succeeded message.
The debootstrap log in the chroot says:
tar: ./usr/sbin/addgroup: Cannot create symlink to 'adduser': File exists
tar: ./usr/sbin/delgroup: Cannot create symlink to 'deluser': File exists
tar: Exiting with failure status due to previous errors
So clearly something has failed.
Why am I not able to catch this in my error check block?
bash debootstrap
add a comment |Â
up vote
1
down vote
favorite
I am testing out debootstrap in a chroot via a bash script.
The snippet that runs it is:
#!/usr/bin/env bash
set -e
...
...
sudo debootstrap --verbose --arch=$ARCH $RELEASE $chroot_dir
if [ "$?" -ne "0" ]; then
echo "debootstrap failed."
echo "See $chroot_dir/debootstrap/debootstrap.log for more information."
exit 1
fi
echo "debootstrap succeeded"
However, after running the script the last lines printed to the terminal are:
I: Chosen extractor for .deb packages: dpkg-deb
I: Extracting adduser...
I don't see the failed or the succeeded message.
The debootstrap log in the chroot says:
tar: ./usr/sbin/addgroup: Cannot create symlink to 'adduser': File exists
tar: ./usr/sbin/delgroup: Cannot create symlink to 'deluser': File exists
tar: Exiting with failure status due to previous errors
So clearly something has failed.
Why am I not able to catch this in my error check block?
bash debootstrap
Those lines printed to the terminal prefixed withI:
are the output of debootstrap and I have output part of the debootstrap log in the question too, so yes, I am sure it has started.
â opticyclic
May 3 at 17:26
That is interesting. It works as expected. Can you explain in an answer why one works and the other doesn't and what the difference is?
â opticyclic
May 3 at 19:29
1
It was your links that enabled me to search using the right terms for the answer!
â opticyclic
May 4 at 19:09
add a comment |Â
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I am testing out debootstrap in a chroot via a bash script.
The snippet that runs it is:
#!/usr/bin/env bash
set -e
...
...
sudo debootstrap --verbose --arch=$ARCH $RELEASE $chroot_dir
if [ "$?" -ne "0" ]; then
echo "debootstrap failed."
echo "See $chroot_dir/debootstrap/debootstrap.log for more information."
exit 1
fi
echo "debootstrap succeeded"
However, after running the script the last lines printed to the terminal are:
I: Chosen extractor for .deb packages: dpkg-deb
I: Extracting adduser...
I don't see the failed or the succeeded message.
The debootstrap log in the chroot says:
tar: ./usr/sbin/addgroup: Cannot create symlink to 'adduser': File exists
tar: ./usr/sbin/delgroup: Cannot create symlink to 'deluser': File exists
tar: Exiting with failure status due to previous errors
So clearly something has failed.
Why am I not able to catch this in my error check block?
bash debootstrap
I am testing out debootstrap in a chroot via a bash script.
The snippet that runs it is:
#!/usr/bin/env bash
set -e
...
...
sudo debootstrap --verbose --arch=$ARCH $RELEASE $chroot_dir
if [ "$?" -ne "0" ]; then
echo "debootstrap failed."
echo "See $chroot_dir/debootstrap/debootstrap.log for more information."
exit 1
fi
echo "debootstrap succeeded"
However, after running the script the last lines printed to the terminal are:
I: Chosen extractor for .deb packages: dpkg-deb
I: Extracting adduser...
I don't see the failed or the succeeded message.
The debootstrap log in the chroot says:
tar: ./usr/sbin/addgroup: Cannot create symlink to 'adduser': File exists
tar: ./usr/sbin/delgroup: Cannot create symlink to 'deluser': File exists
tar: Exiting with failure status due to previous errors
So clearly something has failed.
Why am I not able to catch this in my error check block?
bash debootstrap
edited May 4 at 18:34
asked May 3 at 17:04
opticyclic
317214
317214
Those lines printed to the terminal prefixed withI:
are the output of debootstrap and I have output part of the debootstrap log in the question too, so yes, I am sure it has started.
â opticyclic
May 3 at 17:26
That is interesting. It works as expected. Can you explain in an answer why one works and the other doesn't and what the difference is?
â opticyclic
May 3 at 19:29
1
It was your links that enabled me to search using the right terms for the answer!
â opticyclic
May 4 at 19:09
add a comment |Â
Those lines printed to the terminal prefixed withI:
are the output of debootstrap and I have output part of the debootstrap log in the question too, so yes, I am sure it has started.
â opticyclic
May 3 at 17:26
That is interesting. It works as expected. Can you explain in an answer why one works and the other doesn't and what the difference is?
â opticyclic
May 3 at 19:29
1
It was your links that enabled me to search using the right terms for the answer!
â opticyclic
May 4 at 19:09
Those lines printed to the terminal prefixed with
I:
are the output of debootstrap and I have output part of the debootstrap log in the question too, so yes, I am sure it has started.â opticyclic
May 3 at 17:26
Those lines printed to the terminal prefixed with
I:
are the output of debootstrap and I have output part of the debootstrap log in the question too, so yes, I am sure it has started.â opticyclic
May 3 at 17:26
That is interesting. It works as expected. Can you explain in an answer why one works and the other doesn't and what the difference is?
â opticyclic
May 3 at 19:29
That is interesting. It works as expected. Can you explain in an answer why one works and the other doesn't and what the difference is?
â opticyclic
May 3 at 19:29
1
1
It was your links that enabled me to search using the right terms for the answer!
â opticyclic
May 4 at 19:09
It was your links that enabled me to search using the right terms for the answer!
â opticyclic
May 4 at 19:09
add a comment |Â
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
If you just want to test for an exit code, bash
has the following simple syntax:
if debootstrap --verbose --arch=$ARCH $RELEASE $chroot_dir
then
echo Success
else
echo Failure
fi
The reason why the other way doesn't work is because set -e
causes the script to exit before the exit code is tested.
For further reading about exit values and error trapping see the following links:
- http://mywiki.wooledge.org/BashFAQ/105
- https://sanctum.geek.nz/arabesque/testing-exit-values-bash/
add a comment |Â
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
If you just want to test for an exit code, bash
has the following simple syntax:
if debootstrap --verbose --arch=$ARCH $RELEASE $chroot_dir
then
echo Success
else
echo Failure
fi
The reason why the other way doesn't work is because set -e
causes the script to exit before the exit code is tested.
For further reading about exit values and error trapping see the following links:
- http://mywiki.wooledge.org/BashFAQ/105
- https://sanctum.geek.nz/arabesque/testing-exit-values-bash/
add a comment |Â
up vote
1
down vote
accepted
If you just want to test for an exit code, bash
has the following simple syntax:
if debootstrap --verbose --arch=$ARCH $RELEASE $chroot_dir
then
echo Success
else
echo Failure
fi
The reason why the other way doesn't work is because set -e
causes the script to exit before the exit code is tested.
For further reading about exit values and error trapping see the following links:
- http://mywiki.wooledge.org/BashFAQ/105
- https://sanctum.geek.nz/arabesque/testing-exit-values-bash/
add a comment |Â
up vote
1
down vote
accepted
up vote
1
down vote
accepted
If you just want to test for an exit code, bash
has the following simple syntax:
if debootstrap --verbose --arch=$ARCH $RELEASE $chroot_dir
then
echo Success
else
echo Failure
fi
The reason why the other way doesn't work is because set -e
causes the script to exit before the exit code is tested.
For further reading about exit values and error trapping see the following links:
- http://mywiki.wooledge.org/BashFAQ/105
- https://sanctum.geek.nz/arabesque/testing-exit-values-bash/
If you just want to test for an exit code, bash
has the following simple syntax:
if debootstrap --verbose --arch=$ARCH $RELEASE $chroot_dir
then
echo Success
else
echo Failure
fi
The reason why the other way doesn't work is because set -e
causes the script to exit before the exit code is tested.
For further reading about exit values and error trapping see the following links:
- http://mywiki.wooledge.org/BashFAQ/105
- https://sanctum.geek.nz/arabesque/testing-exit-values-bash/
edited May 4 at 18:59
answered May 3 at 20:35
![](https://i.stack.imgur.com/9L8vd.png?s=32&g=1)
![](https://i.stack.imgur.com/9L8vd.png?s=32&g=1)
dessert
19.6k55594
19.6k55594
add a comment |Â
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1031639%2fwhy-do-i-have-no-exit-code-from-debootstrap%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Those lines printed to the terminal prefixed with
I:
are the output of debootstrap and I have output part of the debootstrap log in the question too, so yes, I am sure it has started.â opticyclic
May 3 at 17:26
That is interesting. It works as expected. Can you explain in an answer why one works and the other doesn't and what the difference is?
â opticyclic
May 3 at 19:29
1
It was your links that enabled me to search using the right terms for the answer!
â opticyclic
May 4 at 19:09