我正在尝试从 txt 文件中导出一些字符串变量。
文件.txt
ERROR_NOT_SUPPORTED_ARCH_MSG='错误:未知架构' ERROR_NOT_SUPPORTED_OS_V_MSG='错误:不支持的操作系统版本'
$ source file.txt
$ export $(cut -f 1 file.txt)
Run Code Online (Sandbox Code Playgroud)
我收到了类似的错误 -
出口:`arch'':不是一个有效的标识符
所以问题是是否可以导出带有空格的字符串变量?什么是正确的方法呢?
使用带有数字的变量运行时遇到了一些麻烦..
这有效;
sourceid_2="blah"
echo $sourceid_2
Run Code Online (Sandbox Code Playgroud)
但这不起作用;
sourceid_2="blah"
i=2
echo $sourceid_$i
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这一问题?我试过没有下划线..但这没有帮助。
我的最终目标是在 for i in {2..7} 循环中对变量做一些事情......像这样;
for i in {2..7}
do
echo $sourceid_$i
done
Run Code Online (Sandbox Code Playgroud) 我正在使用以下命令由用户输入并希望将其显示为3num15.
num --> 应该是用户输入的值。你能帮我语法吗?
echo "Enter the instance number of source system"
read num
Run Code Online (Sandbox Code Playgroud) 我有这个read操作:
read -p "Please enter your name:" username
Run Code Online (Sandbox Code Playgroud)
如何在一行中验证用户名?
如果在一行中不可能以理智的方式实现,那么放在变量中的 Bash 函数可能是一个不错的解决方案?
Name 只是一个例子,它可以是密码或任何其他常见的表单值。
验证在这里的意思是:请求用户两次插入名称并确保两个值相同。
我有一个名为的文件~/myScripts/assignments.sh,其中包含各种赋值,例如变量和别名。这是该文件的味道:
drt="/var/www/html"
rss="/etc/init.d/php*-fpm restart && systemctl restart nginx.service"
alias drt="cd ${drt}"
alias rss="${rss}"
Run Code Online (Sandbox Code Playgroud)
从我完成安装操作系统的那一刻起,我就经常使用这些作业,尤其是为我的网络服务器和相邻软件的安装、配置和维护编写更简洁的脚本。
因此,在任何 Bash 会话开始后(也在 a 之后),始终导出此文件至关重要,它的数据将始终在所有 Bash 会话中可用reboot。
为了实现这一点,我想到了以下糟糕的脚本:
source ~/myScripts/assignments.sh # Immediate availability;
printf "\n%s" "source ~/myScripts/assignments.sh" >> ~/.profile
cat > "cron_daily.sh" <<< "source ~/myScripts/assignments.sh"
crontab <<-"CRONTAB"
0 0 * * * ~/myScripts/cron_daily.sh # Permanent availability (after the one minute gap);
CRONTAB
Run Code Online (Sandbox Code Playgroud)
达到我上面描述的状态的好方法是什么?
我认为要避免采购文件,然后source ~/myScripts/assignments.sh在 bash.bashrc 中添加的原因是我看到一些开发运营bash.bashrc人员一般不愿意采购。虽然,当文件不是自定义的,或者只有这么小的变化时,它通常不是问题。
当我将 .* 分配给变量时,它正在分配所有隐藏文件。
[root@s1 ~]# a=".*"
[root@s1 ~]# echo $a
. .. .bash_history .bash_logout .bash_profile .bashrc .cache .config .cshrc .history .lesshst .mozilla .pki .rnd .ssh .tcshrc .viminfo .virsh .xauth6SHzeY .xauthhAVYfm .xauthI6Cte3 .xauthk7ea35 .xauthlXtiZ9 .Xauthority .xauthQm7mJ8 .xauthTpWbxP .xauthY9KsdC
Run Code Online (Sandbox Code Playgroud)
我期望以下输出:
.*
怎么解决,谢谢。
我在下面试过,它给出了输出
[root@s1 ~]# a='".*"'
[root@s1 ~]# echo $a
".*"
Run Code Online (Sandbox Code Playgroud)
“.*”
但不是
.*
unset myVariable i;
while [ -z "$i" ]; do
read myVariable;
echo "myVariable : '$myVariable'";
i=foo;
done;
echo "myVariable : '$myVariable'"
Run Code Online (Sandbox Code Playgroud)
(unset是否允许重播命令)
按任意键 + ENTER,你会得到:
myVariable : '[what you typed]'
myVariable : '[what you typed]'
Run Code Online (Sandbox Code Playgroud)
的值myVariable存在于while循环之外。现在尝试:
tmpFile=$(mktemp);
echo -e 'foo\nbar\nbaz' >> "$tmpFile"
while read myVariable; do
otherVariable=whatever;
echo "myVariable : '$myVariable', otherVariable : '$otherVariable'";
done < "$tmpFile";
echo "myVariable : '$myVariable', otherVariable : '$otherVariable'";
rm "$tmpFile"
Run Code Online (Sandbox Code Playgroud)
你会得到 :
myVariable : 'foo', otherVariable : 'whatever' …Run Code Online (Sandbox Code Playgroud) shell 变量保存一个路径。如何获得它的文件名部分?
在bash(1)中,我试验了一下,发现用."${i/*\///}"where iis环境变量名就可以了。这种方法不仅难看,而且在路径不包含任何/字符的情况下也是错误的。
我将演示一个需要此类功能的实际案例。假设我们要为源目录中的每个 PDF 文件建立一个指向当前目录的符号链接。
$ for i in /source/path/*.pdf; do\
ln -s "$i" ."${i/*\///}"; \
done
Run Code Online (Sandbox Code Playgroud) 我有一个 web.txt 文件,其中包含:
youtube
facebook
google
Run Code Online (Sandbox Code Playgroud)
我的 sh 文件包含:
readarray web < web.txt
url = www.website.com
Run Code Online (Sandbox Code Playgroud)
我使用过的命令:
readarray web < web.txt
url = www."$web".com
ping url
Run Code Online (Sandbox Code Playgroud)
预期输出:
ping youtube.com
ping facebook.com
ping google.com
Run Code Online (Sandbox Code Playgroud)
正确的语法应该是什么?谢谢!
我期待该变量url将被解析,$()但我得到的变量是url“ http://testing.com ”而不是“ http://testing.com ”
url="http://testing.com"
echo "Fetching from ${url}"
some_var=$(python somePythonScript.py url)
Run Code Online (Sandbox Code Playgroud) variable ×10
bash ×5
alias ×1
array ×1
basename ×1
command-line ×1
filenames ×1
linux ×1
python ×1
read ×1
reboot ×1
scripting ×1
shell ×1
shell-script ×1
verification ×1