【问题标题】:What's a simple way to create 100 .txt files with 1 random number in each of them什么是创建 100 个 .txt 文件的简单方法,每个文件都有 1 个随机数
【发布时间】:2022-10-16 20:12:19
【问题描述】:

我之前问过一个类似的问题,但我得到的答案并不完全是我想要的。 我想在每个文件中创建 100 个带有 1 个随机数的 .txt 文件,并根据文件内的数字为它们分配权限。 我用了:

#!/bin/bash
rm -r -f .txt
touch {1..100}.txt
r=$RANDOM

每次运行脚本时创建新文件并将随机数分配给“r”。 如何将不同的数字粘贴到每个文件中。我不确定是否需要使用 echo 或 shuf 来执行此操作。

之后,我需要检查随机数是否可以被 2 和 3 整除,并据此授予文件权限。 我打算使用:

chmod 000 {1..100}.txt
if ((r % 2 == 0))
then echo chmod +rw {1..100}.txt
elif ((r % 3 ==0))
then chmod 777 {1..100}.txt
else chmod +w {1..100}

但我不确定这是否也有效。

【问题讨论】:

  • 您希望所有 100 个文件共享相同的随机值还是每个文件共享不同的随机值?
  • @Walter每个文件中的不同随机数

标签: bash random


【解决方案1】:

创建100个.txt的简单方法是什么

遍历文件并输出数字。

for ((i = 1; i <= 100; ++i)); do
  echo "$RANDOM" > "$i.txt"
done

【讨论】:

  • 因此,如果我使用 ` #!/bin/bash rm -r *.txt for ((i = 1; i <= 100; ++i)); do echo $RANDOM > "$i.txt" done ` 创建 100 个带有随机数的文件。我可以使用 ` num=$((cat $i.txt)) chmod 000 "$i.txt" if ((num % 2 == 0)) then chmod +rw "$i.txt" elif ((num % 3 == 0)) 然后 chmod 777 "$i.txt" else chmod +w "$i.txt" fi ` 检查数字是否可被 2 和 3 整除并为文件分配权限
  • 当您想使用随机值添加逻辑时,请执行 random="$RANDOM"; echo "$random" &gt; "$i.txt"; ((random%2==0)) &amp;&amp; echo "Even" 之类的操作
  • 这不是使数字固定吗?我希望每个文件中有一个不同的数字,但是如果我在每个文件中粘贴不同的数字,我不确定如何检查该数字是否可被 2 整除。
【解决方案2】:

使用chmod 可以使用类似于您问题中的代码的代码来完成(每次将其更改为 1 个文件并添加fi)。我跳过了chmod 000 并立即分配了正确的模式。

for ((i = 1; i <= 100; ++i)); do
  r="$RANDOM"
  echo "$r" > "$i.txt"
  if ((r % 2 == 0)); then
    chmod 666 "$i.txt"
  elif ((r % 3 ==0)); then
    chmod 777 "$i.txt"
  else
    chmod 222 "$i.txt"
  fi
done

【讨论】:

  • 是否有可能在我运行脚本时打印出所有具有更改权限的文件?
  • 您可以在末尾添加ls -l {1..100}.txt,或者在每个chmod 之后添加echo
猜你喜欢
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
相关资源
最近更新 更多