{"id":194201,"date":"2021-03-04T16:00:51","date_gmt":"2021-03-04T13:00:51","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/using-shellcheck-to-find-and-fix-scripting-bugs-cloudsavvy-it\/"},"modified":"2021-03-04T16:00:51","modified_gmt":"2021-03-04T13:00:51","slug":"using-shellcheck-to-find-and-fix-scripting-bugs-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/using-shellcheck-to-find-and-fix-scripting-bugs-cloudsavvy-it\/","title":{"rendered":"#Using shellcheck to Find and Fix Scripting Bugs \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a4075bda30c1\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a4075bda30c1\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/using-shellcheck-to-find-and-fix-scripting-bugs-cloudsavvy-it\/#What_Is_shellcheck\" >What Is shellcheck?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/using-shellcheck-to-find-and-fix-scripting-bugs-cloudsavvy-it\/#Installing_shellcheck\" >Installing shellcheck<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/using-shellcheck-to-find-and-fix-scripting-bugs-cloudsavvy-it\/#Running_shellcheck\" >Running shellcheck<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/using-shellcheck-to-find-and-fix-scripting-bugs-cloudsavvy-it\/#In_a_Rush\" >In a Rush?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/using-shellcheck-to-find-and-fix-scripting-bugs-cloudsavvy-it\/#Wrapping_up\" >Wrapping up<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#Using shellcheck to Find and Fix <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">Script<\/a>ing Bugs \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<figure style=\"width: 700px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9972 size-full\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/56bef7595089692c201abe2c92e6282e\/p\/uploads\/2021\/03\/23b129a9.png\" alt=\"\" width=\"700\" height=\"404\" data-crediturl=\"https:\/\/www.shutterstock.com\/image-vector\/concept-operating-system-error-warning-404-1522970918\" data-credittext=\"Shutterstock\/MarcoVector\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><figcaption class=\"wp-caption-text\"><span class=\"imagecredit\"><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.shutterstock.com\/image-vector\/concept-operating-system-error-warning-404-1522970918\">Shutterstock\/MarcoVector<\/a><\/span><\/figcaption><\/figure>\n<p>Shellcheck is a great script analysis tool for the Linux shell which can be used to detect common programming mistakes. Shellcheck analyses scripts, and informs about errors and warnings, alike to what a compiler would do.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"What_Is_shellcheck\"><\/span>What Is <i>shellcheck<\/i>?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If you have been a Linux Bash developer for a while, you have likely found a good number of bugs in your own scripts, or the scripts of others. Introducing bugs into code is bound to happen when humans are developing code. Even the best developers may once in a while miss a unforeseen complexity or caveat in their code.<\/p>\n<p>In Bash, there is no real compiler as there is for example in C++. There are however a set of tools which can help greatly when developing Bash scripts. Once such a tool is shellcheck. This fine utility will parse a Bash script file and make recommendations based on what is found during it\u2019s analysis. It is a bit like having a compiler for Bash.<\/p>\n<p>Tools like shellcheck differ in their operation from other runtime tools, like for example executing a script with <code>bash -x<\/code> to see each and every command in the script being executed, and that in real time. The reason is that shellcheck will analyze the script (file) without actually executing it, again alike to what a compiler would do.<\/p>\n<p>For more information on <code>bash -x<\/code>, you may like to read Bash Automation and Scripting Basics (Part 3), which is a part of the Bash Automation and Scripting Basics 3 part <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/watch-movies-tv-seriess\/\" data-internallinksmanager029f6b8e52c=\"8\" title=\"Watch Movies &amp; TV Series\" target=\"_blank\" rel=\"noopener\">series<\/a>.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Installing_shellcheck\"><\/span>Installing <i>shellcheck<\/i><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To install <i>shellcheck<\/i> on your Debian\/Apt based Linux distribution (Like Ubuntu and Mint), execute the following command in your terminal:<\/p>\n<p><code>sudo apt install shellcheck<\/code><\/p>\n<p>To install <i>shellcheck<\/i> on your RedHat\/Yum based Linux distribution (Like RHEL, Centos and Fedora), execute the following command in your terminal:<\/p>\n<p><code>sudo yum install shellcheck<\/code><\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Running_shellcheck\"><\/span>Running <i>shellcheck<\/i><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Once we have installed shellcheck, we can do a simple test with a broken script. First we define our script <code>test.sh<\/code> as follows:<\/p>\n<pre>#!\/bin\/wash&#13;\necho 'Bash is not wash&#13;\necho More errors for me\"&#13;\nif [ -d .\/directory }; than&#13;\n  echo 'sure! &lt; start&#13;\nfif&#13;\n&#13;\n<\/pre>\n<p>How many bugs can you find? (Tip: there are 8!).<\/p>\n<p>Let\u2019s next see what shellcheck makes of this code:<\/p>\n<pre>shellcheck test.sh&#13;\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9888\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/446572d5e8545b2655b56f3bdf676693\/p\/uploads\/2021\/02\/baadc2c4.png\" alt=\"Shellcheck output 1\" width=\"1033\" height=\"391\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Im<a href=\"https:\/\/buradabiliyorum.com\/en\/category\/social-mediaa\/\" data-internallinksmanager029f6b8e52c=\"1\" title=\"Social Media\" target=\"_blank\" rel=\"noopener\">media<\/a>tely on the first line it finds an issue with the <i>shebang<\/i> specification. If you haven\u2019t heard of shebang yet, please checkout our Bash Automation and Scripting Basics Part 1 article. Our pun shebang line <code>#!\/bin\/wash<\/code> should be <code>#!\/bin\/bash<\/code>. Let\u2019s fix this. Issue 1\/8 fixed!<\/p>\n<p>We will also at the same time fix the other two issues immediately recognized by <i>shellcheck<\/i>: <i>Did you forget to close this single quoted string?<\/i> for the second line: spot on! Issue 2\/8 fixed. For the third issue there is a little confusion as to our\/the developers intent for shellcheck, and this is to be expected, as the <code>'<\/code> on line 2 opens a string which is only terminated on line 5 when another <code>'<\/code> is seen!<\/p>\n<p>As this third issue is thus <i>a result of<\/i> the second issue, this run will allow us to fix two issues for the time being. Our script now looks like this:<\/p>\n<pre>#!\/bin\/bash&#13;\necho 'Bash is not wash'&#13;\necho More errors for me\"&#13;\nif [ -d .\/directory }; than&#13;\n  echo 'sure! &lt; start&#13;\nfif&#13;\n&#13;\n<\/pre>\n<p>Let\u2019s run shellcheck on this again after making the corrections and see what the output is.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9889\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/99ca593ccc68fb60273137efd1120c5c\/p\/uploads\/2021\/02\/f3a8ed5e.png\" alt=\"Shellcheck output 2\" width=\"865\" height=\"290\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>In this instance, shellcheck sees that a <code>\"<\/code> is opened on line 3 (even though it is at the end of the line, it is actually an <i>opening<\/i> double quote as such), and that even at script end (note the line 8 indication, which does not exist in our 6-line script with a single empty line after the last line. Let\u2019s clean up this empty line, and fix the double quoting issue at the start of line 3, which can now be readily understood. Issue 3\/8 fixed!<\/p>\n<p>Our script now looks like this:<\/p>\n<pre>#!\/bin\/bash&#13;\necho 'Bash is not wash'&#13;\necho \"More errors for me\"&#13;\nif [ -d .\/directory }; than&#13;\n  echo 'sure! &lt; start&#13;\nfif&#13;\n<\/pre>\n<p>Re-running shellcheck (note how similar again these steps are to using a compiler in other coding languages):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-9890 size-full\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/a0931ff9efe4d057ca3ef4db8a06b1ee\/p\/uploads\/2021\/02\/4ef83a4a.png\" alt=\"Bash shellcheck output 3\" width=\"1107\" height=\"220\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Could not be clearer; <i>The mentioned syntax error was in this if expression<\/i> and <i>Expected test to end here<\/i>. We shall do as suggested and change the <code>}<\/code> to <code>]<\/code>, making the line read <code>if [ -d .\/directory ]; than<\/code>. Issue 4\/8 fixed! We reran shellcheck and are now presented with the following:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9891\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/aeb5c7ef45ec533751616d632ca60bdc\/p\/uploads\/2021\/02\/f9754c39.png\" alt=\"shellcheck output 4\" width=\"767\" height=\"290\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Another single quote issue. We already know how to fix these. Let\u2019s change <code>echo 'sure! &lt; start<\/code> to <code>echo 'sure!' &lt; start<\/code> (issue 5\/8 fixed!) and rerun shellcheck once more:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9892\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/41443261e4476dbf4a150c4b8704da7d\/p\/uploads\/2021\/02\/281d96c3.png\" alt=\"Shellcheck output 5\" width=\"745\" height=\"290\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Interesting at first, we see that shellcheck is unable to parse a line. Whereas this may look like a shortcoming in shellcheck, reading a bit further we see that somewhere a <code>then<\/code> is missing. Aha! We placed <code>than<\/code> instead of <code>then<\/code>. What a careless mistake \ud83d\ude09 Easily fixed (issue 6\/8 fixed!). Our script now looks like this:<\/p>\n<pre>#!\/bin\/bash&#13;\necho 'Bash is not wash'&#13;\necho \"More errors for me\"&#13;\nif [ -d .\/directory ]; then&#13;\n  echo 'sure!' &lt; start&#13;\nfif&#13;\n<\/pre>\n<p>And another shellcheck run provides us with another helpful bit of information:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9893\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/82c2e51f50b3f6da8af16e91eab3b5b1\/p\/uploads\/2021\/02\/cf11b243.png\" alt=\"Shellcheck output 6\" width=\"720\" height=\"308\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>We have a missing <code>fi<\/code>! Aha, yes, <code>fif<\/code> will not do. We change <code>fif<\/code> to <code>fi<\/code> on the last line of the script (issue 7\/8) fixed and run shellcheck once more!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9894\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/f16c95a2d312d6e708217b0ca2174018\/p\/uploads\/2021\/02\/1e71a0d6.png\" alt=\"Shellcheck output 7\" width=\"974\" height=\"152\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>A redirection issue. I honestly did not expect <code>shellcheck<\/code> to also pickup on this mistake, as <code>&lt;<\/code> can be used in Bash also, but it sure did. Indeed our redirection was intended to be <code>&gt;<\/code> instead of <code>&lt;<\/code>. Issue 8\/8 \u2013 all issues \u2013 fixed! This brings us to the final script<\/p>\n<pre>#!\/bin\/bash&#13;\necho 'Bash is not wash'&#13;\necho \"More errors for me\"&#13;\nif [ -d .\/directory ]; then&#13;\n  echo 'sure!' &gt; start&#13;\nfi&#13;\n<\/pre>\n<p>Let\u2019s see what shellcheck thinks of it now.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9895\" src=\"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/78d61a5cc02456094349960c7759cc9a\/p\/uploads\/2021\/02\/0e9a8adb.png\" alt=\"Shellcheck output 8\" width=\"319\" height=\"223\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Perfect! And the script runs perfectly, from the first execution.<\/p>\n<p>If you review the output of the various shellcheck commands you will also notice another very handy feature of shellcheck, especially for beginners: a set of hyperlinks (website links) are displayed, which are mouse-clickable from within the terminal window, or you can select (if necessary) &gt; right-click to copy and then paste into a browser. Clicking on such a link will take you to the <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/koalaman\/shellcheck\">shellcheck GitHub project<\/a>.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"In_a_Rush\"><\/span>In a Rush?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If you want to quickly check only the most significant options, you may like to have a look at the <code>--severity={SEVERITY}<\/code> option, where you would replace <code>{SEVERITY}<\/code> with one out of <code>error, warning, info, style<\/code>.<\/p>\n<p>Thus is you are only looking for errors and warnings, you would use <code>--severity=warning<\/code> (which includes higher levels, in this case being only <code>error<\/code>) as an option to <code>shellcheck<\/code>.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Wrapping_up\"><\/span>Wrapping up<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If there are no issues with logic in a script, running <code>shellcheck<\/code> before executing the script and fixing all issues seen will ensure a quasi-perfect run on first go. You may even be able to use shellcheck in that coding challenge for your next live Bash coding interview! In this article we explored various issues which could arise in scripts and how <code>shellcheck<\/code> handles them.<\/p>\n<p><strong>Enjoy bug-free scripts!<\/strong>\n<\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/9887\/using-shellcheck-to-find-and-fix-scripting-bugs\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#Using shellcheck to Find and Fix Scripting Bugs \u2013 CloudSavvy IT&#8221; Shutterstock\/MarcoVector Shellcheck is a great script analysis tool for the Linux shell which can be used to detect common programming mistakes. Shellcheck analyses scripts, and informs about errors and warnings, alike to what a compiler would do. What Is shellcheck? If you have been&#8230;<\/p>\n","protected":false},"author":1,"featured_media":194202,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/thumbcache\/0\/0\/56bef7595089692c201abe2c92e6282e\/p\/uploads\/2021\/03\/23b129a9.png","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-194201","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/194201","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=194201"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/194201\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/194202"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=194201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=194201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=194201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}