什么样的命令是“sudo”,“su”或“torify”

时间:2017-08-10 18:52:33

标签: linux ubuntu unix

我知道他们做了什么。我只是想知道他们是什么样的命令。如何使用shell脚本创建一个。 例如,命令如:

ignoreError ls /Home/
ignoreError mkdir /Home/
ignoreError cat
ignoreError randomcommand

希望你明白这个想法

2 个答案:

答案 0 :(得分:3)

在shell脚本中执行此操作的方法是使用"$@"构造。

"$@"扩展为您传递给shell脚本的所有参数的引用列表。 $1将是您希望shell脚本运行的命令,而$2 $3等是 命令的参数。

我唯一的例子来自cygwin。 Cygwin没有sudo,但我有这个模拟它的脚本:

#!/usr/bin/bash
cygstart --action=runas "$@"

所以当我运行像

这样的命令时
$ sudo ls -l

我的sudo脚本执行任何需要执行的操作(cygstart --action=runas)并使用ls参数调用-l命令。

答案 1 :(得分:1)

试试这个脚本:

#!/bin/sh
"$@"

调用它,例如run,让它可以运行chmod u+x run,并尝试一下:

$ run ls -l #or ./run ls -l
...
  output of ls
...

这个想法是脚本获取命令行中指定的参数并将它们用作(子)命令...以这种方式修改脚本:

#!/bin/sh
echo "Trying to run $*"
"$@"

你会看到。