AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[dash](unix)

Martin Hope
cheersmate
Asked: 2022-04-28 00:10:39 +0800 CST

用 . 文件给出“未找到”错误

  • 0

我正在尝试使用. file手册页指定的破折号获取(bash-parlance)文件:

 . file
        The commands in the specified file are read and executed by the
        shell.

但即使文件在那里,我也会收到错误消息:

$ ls
defaults.sh  run.sh
$ cat run.sh 
#!/bin/sh

. defaults.sh

echo "VAR: $VAR"
$ cat defaults.sh 
VAR=abc
$ bash run.sh 
VAR: abc
$ dash run.sh 
run.sh: 3: .: defaults.sh: not found

当我尝试. defaults.sh使用交互式破折号时,也会发生同样的事情。

我在哪里错了?

shell-script dash
  • 2 个回答
  • 185 Views
Martin Hope
ceremcem
Asked: 2019-12-25 18:16:13 +0800 CST

Buster 中没有 /var/lib/dpkg/info/dash.preinst

  • 2

在https://wiki.debian.org/Multistrap#Steps_for_Squeeze_and_later中,需要在 chroot 环境中运行以下命令:

/var/lib/dpkg/info/dash.preinst install

此命令在 Stretch 中运行,但/var/lib/dpkg/info/dash.preinst在 Buster 中找不到文件。

在 Buster 中完成安装的等效命令可能是什么?

再生产

git clone https://github.com/ceremcem/multistrap-example
cd multistrap-example
./build.sh buster
debian dash
  • 1 个回答
  • 159 Views
Martin Hope
Harry Cutts
Asked: 2019-07-26 12:17:36 +0800 CST

将“$@”放在破折号中的局部变量中

  • 4

"$@"我有一个 Bash 函数,它通过将它放在一个局部变量中,对其参数作为一个整体 () 进行一些字符串操作,如下所示:

#!/bin/sh

my_func() {
    local args="$@"
    echo "args: <$args>"
}

my_func "$@"

当我在 Bash 中运行它时,args包含所有传递的参数:

$ bash foo.sh foo bar baz
foo bar baz

但是,如果我在 Dash 中运行它,则只存储第一个参数:

$ dash test.sh foo bar baz
args: <foo>

阅读Ubuntu Wiki 的“Dash as /bin/sh”页面中的部分local,似乎 Dash 正在local args="$@"像这样扩展该行:

local args=foo bar baz

因此仅将“foo”放入并将args其声明为(本地?)变量。事实上,如果我在参数中添加并运行它,似乎可以确认我正在添加变量:barbazecho "bar: $bar"my_func=

$ foo.sh foo bar=baz
args: <foo>
bar: baz

综上所述,有没有办法$args在 Dash 中获得类似 Bash 的行为(包含“foo bar baz”)?

shell-script dash
  • 1 个回答
  • 658 Views
Martin Hope
user347221
Asked: 2019-04-16 03:08:32 +0800 CST

如何不拆分单词[重复]

  • 1
这个问题在这里已经有了答案:
我们如何运行存储在变量中的命令? (5 个回答)
3年前关闭。

我在一个名为 的文件中有一个命令列表,cmds每行一个命令。

我想获取最后一个命令,将其设置为变量last_command并稍后运行。用$last_commandor "$last_command",或者任何更合适的。

我首先得到最后一个命令:

$ last_command="$(cat cmds | tail -1)"
$ echo $last_command
cat file1 file2 file\ 3

的最后一行cmds是cat cat file1 file2 file\ 3.

问题是,当我运行时"$last_command",它不会知道和之间的空格file是3文件名的一部分,并给我一个错误。

dash
  • 1 个回答
  • 36 Views
Martin Hope
CharacterClass
Asked: 2019-03-13 02:06:19 +0800 CST

破折号中的范围如何工作?

  • 3

我试图弄清楚如何在破折号中匆忙下面的 bash 脚本。

for x in {1..5}
do
    for y in {a..c}
    do
    echo $HOME$x$y
    done
done

Dash 不支持大括号扩展,我不知道有任何其他方法可以获取类似范围的构造以模仿上面的脚本。我想我可以通过一个while循环来解决,但我不认为这是一个脚本改编,而是一个完全不同的野兽。

是否可以在 Dash 中保留上述脚本的精神?是否可以在不使用 seq 等外部程序的情况下保持上述脚本的精神?如何?

shell-script dash
  • 2 个回答
  • 639 Views
Martin Hope
illiterate
Asked: 2019-03-01 20:38:49 +0800 CST

如何在此处文档中转义空字符?(bash 和/或破折号)

  • 4

我想shuf --zero-terminated用 here-document 处理多行字符串。

bash dash
  • 3 个回答
  • 1077 Views
Martin Hope
illiterate
Asked: 2018-09-24 01:28:45 +0800 CST

当左命令产生大输出时,如何在破折号中检查左命令在管道“左|右”中的退出状态

  • 2

似乎变量“PIPESTATUS”在dash. 简单的单独执行不起作用,因为左侧命令会产生非常大的输出。我使用了一个fifo来完成这个任务:

#!/bin/dash
mkfifo command1 command2
dash -c "cat ./content;code=\${?};echo \${code} > command1 &" | dash -c "md5sum;code=\${?};echo \${code} > command2 &"
echo "$(cat ./command1)" "$(cat ./command2)"

但我不知道为什么它挂了?

pipe dash
  • 2 个回答
  • 561 Views
Martin Hope
bcan
Asked: 2018-09-18 05:43:54 +0800 CST

/etc 目录中是否有 dash 和 sh 作为非登录 shell 的调用文件?

  • 2

/etc/profile可以在交互式登录模式sh中调用。当它们处于交互式非登录模式时dash,目录中是否有要调用的文件?/etc

shell dash
  • 2 个回答
  • 1687 Views
Martin Hope
Martin Vegter
Asked: 2018-09-11 22:41:34 +0800 CST

破折号:从管道中读取变量

  • 1

在bashorzsh中,我可以使用以下语法从管道读取变量:

echo AAA BBB | read X Y ; echo $X

这将打印AAA

为什么同样不起作用/bin/sh?

我在 Debian 中使用/bin/sh-> /bin/dash dash

shell dash
  • 4 个回答
  • 3497 Views
Martin Hope
sherlock
Asked: 2018-08-01 22:29:30 +0800 CST

哪里 '/?' 参数扩展记录在案?

  • 0

我遇到了这个奇怪的 bash/dash 参数扩展,我没有找到任何参考。这种扩展叫什么?它记录在哪里?

$ /???
bash: /bin: Is a directory
$ /????
bash: /boot: Is a directory
$ /?????
bash: /cdrom: Is a directory
$ /??????
bash: /libx32: Is a directory
bash dash
  • 1 个回答
  • 46 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve