linux - 将空参数传递给 sudo -i

标签 linux bash shell sudo

这是我想使用 sudo -i 运行的示例 bash 脚本:

#!/bin/bash

echo "arg 1: $1"
echo "arg 2: $2"

当我使用一个空参数正常运行此命令时,它按预期运行:

$ /tmp/args.sh "" two
arg 1:
arg 2: two

使用简单的 sudo,我得到了预期的结果:

$ sudo /tmp/args.sh "" two
arg 1:
arg 2: two

但是,如果我使用 -i(获取用户的 shell 和登录脚本),第一个参数突然消失了:

$ sudo -i /tmp/args.sh "" two
arg 1: two
arg 2:

而且我想不出任何方法来引用或转义第一个空参数。

注意:我找到了一个解决方法,方法是将 /tmp/args.sh ""two 写入一个文件,然后使用 sudo -i 执行它,但我想知道是否有任何方法可以直接从命令行实现这一点。

最佳答案

这对我有用:

sudo -i bash -c '/tmp/args.sh "" two'

关于linux - 将空参数传递给 sudo -i,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892812/

相关文章:

linux - Debian 中的 EPUB 阅读器

java - 将制表符完成添加到 JFileChooser 文件名输入

linux - 如何按列对一组数据进行排序?

linux - 用于比较 Linux 中多个文件的日期的 Shell 脚本

重启后Linux环境变量重置

linux - Linux上如何区分手动安装的包和依赖项

linux - 使用 bash 脚本从文件中删除字符串

sql - 通过shell脚本从表中删除记录

linux - 获取从 find 命令到变量的路径

bash - 我的 Bash 别名不起作用