我有一个 bash 脚本,它应该接受一些参数,然后在不同的用户中运行: test.sh
#!/bin/bash
sudo su user2 <<'EOF'
echo $1
EOF
Run Code Online (Sandbox Code Playgroud)
但是它打印空白:
$ ./test.sh haha
Run Code Online (Sandbox Code Playgroud)
我知道这是因为环境变量被重置(?)。我怎样才能通过这个论点?安全方面我听说我不应该禁用环境重置。我想到解决这个问题的唯一方法是写入$1文件,然后由 user2 再次读取它。但我想应该有更好的方法。