Isso parece fazer o que você procura:
#!/bin/bash
chroot_dir="$1"
shift
working_dir="$1"
shift
cmd="$@"
chroot "${chroot_dir}" sh -c "cd ${working_dir} ; ${cmd}"
Note que / tmp começa com apenas o script:
# ls /tmp
chroot.sh
Eu tenho um chroot em /mnt/foo
, que é uma montagem de ligação para /
:
# /tmp/chroot.sh /mnt/foo /tmp touch '"filename with spaces"'
Agora observe que existe um arquivo filename with spaces
:
# ls -1 /tmp
chroot.sh
'filename with spaces'