簡體   English   中英

在腳本中設置數字變量(“ set $ i 1”)不起作用(“ echo $ i”為空)

[英]Setting numeric variables in a script (“set $i 1”) not working (“echo $i” empty)

如標題所述,我需要有關bash腳本的幫助,該腳本必須生成給定兩個數字變量的字符串。 該字符串將用於生成文件名,但是當我測試名稱生成代碼時,它不會產生任何結果

腳本是下面的代碼

# !usr/bin
set nombre
declare -a i
declare -a j

set $i  1
set $j  2

set nombre "$i\_$j.txt"

echo $i
echo $j

它產生的是:

entropy@3PY:~$ ./test4

如您所見,它應該不會產生任何收益

1
2

提前致謝

set不用於將值分配給常規變量; 它用於設置位置參數的值或修改殼選項。 您需要定期分配。

i=1
j=2
nombre="${i}_$j.txt"

echo "$i"
echo "$j"
echo "$nombre"

分配前無需聲明變量; 必要時,分配會創建一個變量。 declare命令更多的是關於一個名字設置屬性-a ,例如,將標志着變量作為數組變量,有些東西你不需要在這里)。


作為如何一個例子set 確實可行,考慮

echo "First positional parameter: $1"
echo "Second positional parameter: $2"
set foo bar  # $1=foo, $2=bar
echo "First positional parameter: $1"
echo "Second positional parameter: $2"

此代碼是否可以按需工作?

#!/bin/bash
i=1
j=2

echo $i
echo $j

nombre=$i"_"$j.txt

echo $nombre

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM