Hi,

I would like to pass the arguments to apt trough a .sh script.

apt install "${1}/opensnitch_${1}_amd64.deb" "${1}/python3-opensnitch-ui_${1}_all.deb"

so for example if I launch test.sh 1.6.5 the script should run apt install 1.6.5/opensnitch_1.6.5_amd64.deb 1.6.5/python3-opensnitch-ui_1.6.5_all.deb

but it’s not wokring it pass to apt only 1.6.5 and not the rest of the string… any ideas ?

  • atzanteol@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    edit-2
    5 hours ago

    For apt to install a local file I think you need either a fully qualified path or to use “./” at the start for a relative path.

    So “./$1/opensnitch_${1}_amd64.deb”

    apt install 1.6.5/opensnitch_1.6.5_amd64.deb 1.6.5/python3-opensnitch-ui_1.6.5_all.deb

    Edit: Here’s a better example of what I think you would want:

    #!/bin/bash
    # Often good to assign a numbered parameter to a variable
    VER="${1}"
    apt install "./${VER}/opensnitch_${VER}_amd64.deb" "./${VER}/python3-opensnitch-ui_${VER}_all.deb"
    

    Also - when debugging bash scripts it’s often helpful to just put “echo” before the line you’re questioning to see what exactly is being run. e.g.:

    #!/bin/bash
    VER="${1}"
    echo apt install "./${VER}/opensnitch_${VER}_amd64.deb" "./${VER}/python3-opensnitch-ui_${VER}_all.deb"
    

    That will show the the command that would have run rather than running it, then you can inspect it for errors and even copy/paste it to run it by hand.