$ whatis source
source: nothing appropriate.
$ man source
No manual entry for source
$ source
bash: source: filename argument required
source: usage: source filename [arguments]
Run Code Online (Sandbox Code Playgroud)
它存在,并且可以运行。为什么 Ubuntu 中没有关于它的任何文档?它有什么作用?如何安装有关它的文档?
什么之间的区别.bashrc
和.bash_profile
我应该使用哪一个?
执行像 A 这样的 Bash 脚本和采购像 B 这样的 Bash 脚本有什么区别?
A
> ./myscript
B
> source myscript
Run Code Online (Sandbox Code Playgroud) 嗨,我想在文件中添加文本。例如,我想将任务添加到 todo.txt 文件的开头。我知道,echo 'task goes here' >> todo.txt
但这将行添加到文件的末尾(不是我想要的)。
我在 Ubuntu 上使用 Tilda(下拉式终端)作为我的“命令中心”——几乎就像其他人使用 GNOME Do、Quicksilver 或 Launchy 的方式一样。
但是,我正在努力解决如何将进程(例如 Firefox)与启动它的终端完全分离 - 即防止这样的(非)子进程
例如,为了在“正确的”终端窗口中启动 Vim,我尝试了一个简单的脚本,如下所示:
exec gnome-terminal -e "vim $@" &> /dev/null &
Run Code Online (Sandbox Code Playgroud)
但是,这仍然会导致污染(而且,传递文件名似乎不起作用)。
我正在尝试使用以下命令更改符号链接的用户/组:
$ chown -h myuser:mygroup mysymbolic/
Run Code Online (Sandbox Code Playgroud)
但它并没有改变。我以 root 身份登录。当前用户/组设置为 root:root。什么地方出了错?
有没有办法在不使用 pushd/popd 的情况下返回我们使用 bash,tcsh 时使用的上一个目录?我想输入类似“back”的内容,然后返回到我所在的上一个目录。
编辑:
“cd -” 有效,但仅适用于当前和以前的目录。无论如何我可以回到上一个上一个目录,就像你可以在网络浏览器中返回一样吗?
问候
如何在 bash 中的变量或命令输出中正确迭代行?简单地将 IFS 变量设置为新行适用于命令的输出,但不适用于处理包含新行的变量。
例如
#!/bin/bash
list="One\ntwo\nthree\nfour"
#Print the list with echo
echo -e "echo: \n$list"
#Set the field separator to new line
IFS=$'\n'
#Try to iterate over each line
echo "For loop:"
for item in $list
do
echo "Item: $item"
done
#Output the variable to a file
echo -e $list > list.txt
#Try to iterate over each line from the cat command
echo "For loop over command output:"
for item in `cat list.txt`
do
echo "Item: $item"
done …
Run Code Online (Sandbox Code Playgroud) 当我bash
在 Linux 的 Windows 子系统上启动时,它会将我放到目录中
/mnt/c/Users/<username>
Run Code Online (Sandbox Code Playgroud)
当我ls
看到这个目录时,我看到了使用 Windows 文件资源管理器时可以看到的目录Desktop
、Documents
等C:\Users\<username>
。由于这是bash
程序开始的地方,我希望这是我的主目录,但是当我输入cd
或cd ~
我被带到
/home/<username>
Run Code Online (Sandbox Code Playgroud)
其中包含我希望在 Linux 机器的主目录中找到的我的.bashrc
, .profile
etc. 文件。此外,cd ../..
从这里进入我可以看到目录bin
,etc
等等,这在 Linux 机器上再次如预期。
关于这一切,我有两个问题:
/mnt/c/Users/<username>
与什么相比C:\Users\<username>
?似乎它们是同一个——那是/mnt/c/
什么?/home/<username>
使用 Windows 文件资源管理器查看文件?并不是说我真的想要——我只是想了解一下 Windows 如何组织 Linux 子系统。