从终端将变量值传递给脚本

从终端将变量值传递给脚本

我喜欢 shred 命令,因此我更喜欢使用 shred,而不是使用 'rm' 命令。我想在 /usr/bin 中创建一个 bash 脚本,假设我们将其命名为“shredder”,这样如果我想粉碎一个文件(即 test.txt),我只需输入:

碎纸机测试.txt

而 bash 脚本可以帮我完成这个任务。我制作了一个这样的 bash 脚本,但在运行它之前,我不知道如何在终端中传递文件名。任何帮助都将不胜感激。

这是我的代码。

#!/bin/bash
clear
read fle
shred -n 3 -zvfu $fle

提前致谢!

答案1

您可以按以下方式使用脚本

#!/bin/bash
clear    
for var in "$@"
  do
    shred -n 3 -zvfu "$var"
  done

或者更短的版本

#!/bin/bash
clear    
for var
  do
    shred -n 3 -zvfu "$var"
  done

运行脚本,然后输入要粉碎的文件名。您可以使用空格分隔的多个文件。

答案2

Bash 使用特殊的环境变量来处理参数

  1. $0 :脚本名称本身
  2. $# :参数总数
  3. $1 :第一个参数
  4. $2 :第二个参数

等等

#!/usr/bin/env bash

echo name of script is $0
echo first argument is $1
echo second argument is $2
echo number of arguments is $#

该程序的输出如下:

bash /tmp/test.sh one two three
name of script is /tmp/test.sh
first argument is one
second argument is two
number of arguments is 3

答案3

或者,您可以通过运行以下命令为“shredder”创建别名:

echo 'alias shredder="shred -n 3 -zvfu"' >> ~/.bashrc

现在,获取.bashrc文件以应用更改(重置 bash shell):

. ~/.bashrc

最后,您可以使用“shredder”命令删除文件。

相关内容