【问题标题】:How to add item per line in linux terminal bash `apt install` command?如何在linux终端bash`apt install`命令中添加每行项目?
【发布时间】:2021-06-11 16:37:48
【问题描述】:

系统是带有 xfce 4 的 Debian 10。
当bash命令有多个参数时,我通常在行尾使用\ 。然后我尝试了:

pc@server:~$     apt install -y ./code_1.54.1-1614898113_amd64.deb\  
    ./veracrypt-1.24-Update7-Debian-10-amd64.deb\  
    ./bcompare-4.3.7.25118_amd64.deb\  
    ./dbeaver-ce_21.1.0_amd64_a0667a.deb\  
    ./rstudio-1.4.1106-aqmd64.deb\  

但我没有得到我想要的。我知道可以使用 单独的参数,比如:

pc@server:~$  apt install -y ./code_1.54.1-1614898113_amd64.deb ./veracrypt-1.24-Update7-Debian-10-amd64.deb ./bcompare-4.3.7.25118_amd64.deb ./dbeaver-ce_21.1.0_amd64_a0667a.deb ./rstudio-1.4.1106-aqmd64.deb 

在使用 bash apt install 命令时,有什么方法可以每行设置一个参数吗?

【问题讨论】:

  • 在字符串和反斜杠之间添加一个空格`./code_1.54.1-1614898113_amd64.deb \`
  • @Jetchisel,那么我可以在一个直观清晰的命令中安装多个包吗?
  • 试试看,是吗?
  • 您所拥有的应该可以工作,除非您实际上使用的是反斜杠,后跟一个空格,后跟一个换行符。反斜杠必须是该行的最后一个字符。 (您正在转义换行符。)
  • @WilliamPursell,错字。

标签: bash shell terminal debian apt


【解决方案1】:

您所拥有的应该可以工作,但有两个注意事项。反斜杠必须紧跟在\n 之前,您可能希望省略最后一行的反斜杠。例如:

$ cat a.sh
#!/bin/bash

for x; do echo arg: "$x"; done
$ ./a.sh foo\
>   bar\
>   baz\
> 
arg: foo
arg: bar
arg: baz

请注意,通过在上例中的最后一行保留反斜杠,需要一个额外的(未转义的)换行符来终止命令。另请注意,后续行中的前导空格是必要的,因为如果没有前导空格,shell 将忽略转义的换行符并合并两个参数。例如:

$ ./a.sh foo\
> bar \
> baz
arg: foobar
arg: baz

【讨论】:

  • 还有一个问题,如何重写以` when I use sudo`结尾的命令来运行?
  • @kittygirl ??我不明白这个问题。
猜你喜欢
  • 2017-11-23
  • 2018-11-15
  • 2017-10-15
  • 2014-03-14
  • 2018-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多